listview的使用----BaseAdapter
16lz
2021-01-26
public class MainActivity extends Activity {List personList; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); personList = new ArrayList(); //把数据库的数据查询出来 MyOpenHelper oh = new MyOpenHelper(this); SQLiteDatabase db = oh.getWritableDatabase(); Cursor cursor = db.query("person", null, null, null, null, null, null, null); while(cursor.moveToNext()){ String _id = cursor.getString(0); String name = cursor.getString(1); String salary = cursor.getString(2); String phone = cursor.getString(3); Person p = new Person(_id, name, phone, salary); personList.add(p); } ListView lv = (ListView) findViewById(R.id.lv); lv.setAdapter(new MyAdapter()); } class MyAdapter extends BaseAdapter{ //系统调用,用来获知集合中有多少条元素@Overridepublic int getCount() {return personList.size();}//由系统调用,获取一个View对象,作为ListView的条目//position:本次getView方法调用所返回的View对象,在listView中是处于第几个条目,那么position的值就是多少@Overridepublic View getView(int position, View convertView, ViewGroup parent) {Person p = personList.get(position);//TextView tv = new TextView(MainActivity.this);System.out.println("getView调用:" + position + ";" + convertView);//tv.setText(p.toString());//tv.setTextSize(18);View v = null;//判断条目是否有缓存if(convertView == null){//把布局文件填充成一个View对象v = View.inflate(MainActivity.this, R.layout.item_listview, null);}else{v = convertView;}//获取布局填充器对象//LayoutInflater inflater = LayoutInflater.from(MainActivity.this);//使用布局填充器填充布局文件//View v2 = inflater.inflate(R.layout.item_listview, null);//LayoutInflater inflater2 = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);//View v3 = inflater2.inflate(R.layout.item_listview, null);//通过资源id查找组件,注意调用的是View对象的findViewByIdTextView tv_name = (TextView) v.findViewById(R.id.tv_name);tv_name.setText(p.getName());TextView tv_phone = (TextView) v.findViewById(R.id.tv_phone);tv_phone.setText(p.getPhone());TextView tv_salary = (TextView) v.findViewById(R.id.tv_salary);tv_salary.setText(p.getSalary());return v;}@Overridepublic Object getItem(int position) {return null;}@Overridepublic long getItemId(int position) {return 0;} } }
更多相关文章
- IntentService源码解读
- Service启动之启动方式和绑定方式
- 将获取的html源代码格式化输出
- 内存优化三
- Android(安卓)调用H5界面(交互)
- APK应用LOG保存
- android(15)(ContentProvider内容提供者)
- 使用ExpandableListActivity实现可展开的Activity
- Android屏幕旋转和Configuration的使用