ListView_BaseAdapter

来源:互联网 发布:c语言函数头举例 编辑:程序博客网 时间:2024/06/01 10:13
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent" >    <TextView     android:id="@+id/tv_name"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="名字"    android:textSize="25sp"    /><LinearLayout     android:layout_alignParentRight="true"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:orientation="vertical"    >    <TextView         android:id="@+id/tv_phone"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="号码"    />    <TextView         android:id="@+id/tv_salary"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="工资"    /></LinearLayout></RelativeLayout>




public class MainActivity extends Activity {List<Person> personList;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);                personList = new ArrayList<Person>();        //把数据库的数据查询出来        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;}        }    }


0 0
原创粉丝点击