ListView自定义Adapter 传对象
首先定义一个Student.java
public class Student {
private String no;
private String name;
private int age;
public Student(String no,String name,int age){
this.no=no;
this.name=name;
this.age=age;
}
public String getNo() {
return no;
}
public void setNo(String no) {
this.no = no; }
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
二、xml
activity_main.xml
<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="cn.wxsoso.MainActivity" >
<ListView
android:id="@+id/stuList"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</ListView>
</RelativeLayout>
stu.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<TextView
android:id="@+id/noTxt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"/>
<TextView
android:id="@+id/nameTxt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"/>
<TextView
android:id="@+id/ageTxt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"/>
</LinearLayout>
三、MainActivity.java
public class MainActivity extends Activity {
private Button addBtn;
private ListView stuList;
private List<Student> students= new ArrayList<Student>(0);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/**ui*/
stuList=(ListView)findViewById(R.id.stuList);
/**数据*/
Student stu=new Student("1001","王海江",18);
students.add(stu);
stu=new Student("1002","夏健",19);
students.add(stu);
StudentAdapter adp= new StudentAdapter(this, students);
stuList.setAdapter(adp);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
四 、StudentAdapter.java
public class StudentAdapter extends BaseAdapter{
private MainActivity context;
private LayoutInflater mLayoutInflater;
private List<Student> stuList;
public StudentAdapter(MainActivity context, List<Student> stuList) {
super();
this.context = context;
this.stuList = stuList;
this.mLayoutInflater = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return stuList.size();
}
@Override
public Object getItem(int position) {
return stuList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
convertView = this.mLayoutInflater.inflate(R.layout.stu, parent, false);
Student stu = (Student)getItem(position);
TextView noTxt = (TextView) convertView.findViewById(R.id.noTxt);
TextView nameTxt = (TextView) convertView.findViewById(R.id.nameTxt);
TextView ageTxt = (TextView) convertView.findViewById(R.id.ageTxt);
noTxt.setText(stu.getNo());
nameTxt.setText(stu.getName());
ageTxt.setText(stu.getAge()+"");
return convertView;
}
}