- ArrayAdapter中需要重写getView()方法,在getView方法中,填充Layout并绑定数据。上下文可以通过构造函数传过来,也可以用ViewGroup parent。
- TextView中的setText方法,不能传递int类型数据,可以先把类型数据转化成String类型。转化方法为int+""。
1 public class FruitAdapter extends ArrayAdapter<Fruit> {
2 private int resource;
3 private List<Fruit> data;
4 private Context context;
5
6 public FruitAdapter(Context context, int resource, List<Fruit> data) {
7 super(context, resource, data);
8 this.resource=resource;
9 this.data=data;
10 this.context=context;
11 }
12
13 @NonNull
14 @Override
15 public View getView(int position, View convertView, ViewGroup parent) {
16 View view= LayoutInflater.from(context).inflate(resource,null);
17 TextView tv_name=(TextView) view.findViewById(R.id.tv_name);
18 TextView tv_age=(TextView) view.findViewById(R.id.tv_age);
19 tv_name.setText("Fruint Name:"+data.get(position).getName());
20 tv_age.setText("Pirce:"+data.get(position).getAge());
21
22 return view;
23 }
24 }
1 package finishactivity.zhangmeng.com.listviewdemo;
2
3 import android.support.v7.app.AppCompatActivity;
4 import android.os.Bundle;
5 import android.widget.ListView;
6
7 import java.util.ArrayList;import java.util.List;
8
9 public class MainActivity extends AppCompatActivity {
10 private List<Fruit> data=new ArrayList<>();
11
12 @Override
13 protected void onCreate(Bundle savedInstanceState) {
14 super.onCreate(savedInstanceState);
15 setContentView(R.layout.activity_main);
16 Fruit apple=new Fruit("apple",30);
17 Fruit peach=new Fruit("peach",40);
18 Fruit banana=new Fruit("Banana",30);
19 Fruit grape=new Fruit("grape",10);
20 data.add(apple);
21 data.add(peach);
22 data.add(banana);
23 data.add(grape);
24 ListView lv=(ListView)findViewById(R.id.lv);
25 //lv.setAdapter(new FruitAdapter(this,R.layout.item,data));
26 lv.setAdapter(new Myadapter(data));
27 // lv.getOnItemClickListener(new AdapterView.OnItemClickListener());
28 }
29 }