ArrayAdapter_SimpleAdapter_SimpleCursorAdapter+SQL

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:列表项的布局文件ID
27          * 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     @Override
10     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     @Override
39     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 stub
12     }
13 
14     @Override
15     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     @Override
24     public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
25         // TODO Auto-generated method stub
26         
27     }
28     
29     /*插入方法*/
30     public void insert(ContentValues values){
31         SQLiteDatabase db = getWritableDatabase();  //获取SQLiteDatabase
32         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);  // 获取Cursor
40         return cursor;
41     }
42     /*关闭数据库*/
43     public void close(){
44         if(db != null){
45             db.close();
46         }
47     }
48 
49 }

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。