- 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 }