listview显示和集合套路
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<ListView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/lv" />
</RelativeLayout>
public class MainActivity extends Activity {
//mvc中的view,视图
private ListView lv;
private List<User> users;
private Context context = MainActivity.this;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//查找视图
lv = (ListView) findViewById(R.id.lv);
//设置控制器 controller
lv.setAdapter(new MyAdapter(context,users));
}
//BaseXXX SimpleXXX DefalutXXX
/**
* 控制器 用来控制listview如何显示
*/
private class MyAdapter extends BaseAdapter{
private Context context;
private List<User> users;
public MyAdapter(Context context, List<User> users) {
this.context = context;
this.users = users;
}
//控制listview里面有多少个item
@Override
public int getCount() {
return users.size();
}
//返回某个位置显示的view对象。
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view=null;
if (convertView == null) {
view = View.inflate(context, R.layout.item, null);
} else {
view=convertView;
}
TextView name = (TextView) view.findViewById(R.id.tv_name);
TextView age = (TextView) view.findViewById(R.id.tv_age);
TextView sex = (TextView) view.findViewById(R.id.tv_sex);
User user = users.get(position);
name.setText(user.getName());
age.setText(user.getAge()+"");
sex.setText(user.getSex());
return view;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
}