2015.5.13安卓笔记之listview

来源:互联网 发布:淘宝hd下载安装 编辑:程序博客网 时间:2024/05/20 18:54
1.listview控件应用
①在布局文件中加进一个ListView控件
② 写一个类MyAdapter继承BaseAdapter
private class MyAdapter extends BaseAdapter {

@Override
public int getCount() {
return persons.size();
}

@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}

@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
Person p=persons.get(position);
TextView tv=new TextView(getApplicationContext());
tv.setTextSize(20);
tv.setTextColor(Color.BLACK);
tv.setText(p.toString());
return tv;
} 
③在MainActivity中的核心代码如下(假设数据是上一节数据库Person.db中的数据) 
public class MainActivity extends Activity {
private ListView lv;
private List<Person> persons;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv = (ListView) findViewById(R.id.lv);
PersonDao pd=new PersonDao(this);
persons=pd.findAll();
MyAdapter adapter=new MyAdapter();
lv.setAdapter(adapter);
} 
2.
listview使用了MVC模式
M 数据模型 Person对象
V 视图  ListView
C 控制器  适配器adapter

3适合更多界面样式的方法:
除了有listview控件的布局文件外,还可以创建一个listItem布局文件

之后再适配器类的View 方法中添加如下核心代码(示例)
 
View view=View.inflate(MainActivity.this, R.layout.list_item, null);
TextView tv_id=(TextView) view.findViewById(R.id.tv_id);
tv_id.setText("id:"+p.getId());
TextView tv_name=(TextView) view.findViewById(R.id.tv_name);
tv_name.setText("姓名:"+p.getName());
TextView tv_number=(TextView) view.findViewById(R.id.tv_number);
tv_number.setText("身份证:"+p.getIdcard());
return view;

0 0
原创粉丝点击