ArrayAdapter_SimpleAdapter_SimpleCursorAdapter+SQL,simpleadapter的用法

來源:互聯網
上載者:User

ArrayAdapter_SimpleAdapter_SimpleCursorAdapter+SQL,simpleadapter的用法

ArrayAdapter_SimpleAdapter:

 1         private ListView listview; 2     private ArrayAdapter<String>arr_adapter; 3     private SimpleAdapter simp_adapter; 4     private List<Map<String,Object>>dataList; 5  6     @Override 7     protected void onCreate(Bundle savedInstanceState) { 8         super.onCreate(savedInstanceState); 9         setContentView(R.layout.activity_man);10         listview = (ListView)findViewById(R.id.listView1);11         12         String[]arr_data={"傳說中的資料來源1","傳說中的資料來源2","傳說中的資料來源3","傳說中的資料來源4"};13         14         //建立一個適配器15         //參數:1.上下文 2.當前Listview載入的每一個清單項目所對應的布局檔案3.資料來源16         //arr_adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, arr_data);       //普通文字適配器17         //視圖載入適配器18         //listview.setAdapter(arr_adapter);19         20         dataList = new ArrayList<Map<String,Object>>();21         simp_adapter = new SimpleAdapter(this, getData(), R.layout.item, new String[]{"img","text"}, new int[]{R.id.img,R.id.text});22         /*1.上下文23          * 2.data:   資料來源  List<? extends Map<String, ?>> data (一個map所組成的list集合)24          *           每一個Map都會去對應ListView中的一行25          *           每一個Map(鍵——值對)中的鍵必須包含所有在from中所指定的鍵26          * 3.resource:清單項目的布局檔案ID27          * 4.from:Map中的鍵名28          * 5.to:綁定資料檢視中的ID。與from成對應關係29         */  30         listview.setAdapter(simp_adapter);31     }32     33     private List<Map<String,Object>> getData(){34         35         for(int i = 0; i < 20; i++){36             Map<String, Object>map = new HashMap<String, Object>();37             map.put("img", R.drawable.ic_launcher);38             map.put("text", "傳說中的資料來源"+i);39             dataList.add(map);40         }41         42         return dataList;43     }

SimpleCursorAdapter:

 1 public class ManActivity extends Activity { 2     private EditText ed1 = null; 3     private EditText ed2 = null; 4     private Button btn = null; 5     private ListView listview = null; 6     private SimpleCursorAdapter adapter; 7     private MySql mysql = null; 8  9     @Override10     protected void onCreate(Bundle savedInstanceState) {11         super.onCreate(savedInstanceState);12         setContentView(R.layout.activity_man);13         this.mysql = new MySql(ManActivity.this);14         ed1 = (EditText)findViewById(R.id.editText1);15         ed2 = (EditText)findViewById(R.id.editText2);16         listview = (ListView)findViewById(R.id.listView1);17         btn = (Button)findViewById(R.id.button1);18         btn.setOnClickListener(new OnClickListener() {19             public void onClick(View view) {20                 //插入資料庫21                 ContentValues values = new ContentValues();22                 values.put("name", ed1.getText().toString());23                 values.put("sex",ed2.getText().toString());        24                 mysql.insert(values);  25                 //重新整理適配器26                 Cursor cursor = mysql.query();27                 adapter.changeCursor(cursor);28 29             }30         });31         Cursor c = mysql.query();32         adapter = new SimpleCursorAdapter(this, R.layout.item, c, new String[]{mysql.NAME,mysql.SEX}, new int[]{R.id.textView1,R.id.textView2});33         listview.setAdapter(adapter);34         //listview綁定適配器35         36     }37     38     @Override39     public boolean onCreateOptionsMenu(Menu menu) {40         // Inflate the menu; this adds items to the action bar if it is present.41         getMenuInflater().inflate(R.menu.man, menu);42         return true;43     }44 45 }

與SimpleCursorAdapter配套的SQL:

 1 public class MySql extends SQLiteOpenHelper{ 2     private final static String TABLE_NAME = "user"; 3     public static final String _ID = "_id"; 4     public static final String NAME = "name"; 5     public static final String SEX = "sex"; 6  7     private SQLiteDatabase db = null; 8  9     public MySql(Context context) {10         super(context, "user", null, 1);11         // TODO Auto-generated constructor stub12     }13 14     @Override15     public void onCreate(SQLiteDatabase db) {16         // TODO 建立資料庫17         db.execSQL("create table if not exists "+ TABLE_NAME +" " +18                 " ("+ _ID +" integer primary key autoincrement,"19                 + NAME +" text not null,"+ SEX +" text not null)");20         21     }22 23     @Override24     public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {25         // TODO Auto-generated method stub26         27     }28     29     /*插入方法*/30     public void insert(ContentValues values){31         SQLiteDatabase db = getWritableDatabase();  //擷取SQLiteDatabase32         db.insert(TABLE_NAME, null, values);   //插入資料庫中33         db.close();34         35     }36     /*查詢方法*/37     public Cursor query(){38         SQLiteDatabase db = getReadableDatabase();39         Cursor cursor = db.query(TABLE_NAME, null, null, null, null, null, null);  // 擷取Cursor40         return cursor;41     }42     /*關閉資料庫*/43     public void close(){44         if(db != null){45             db.close();46         }47     }48 49 }

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.