如果适配器是object类型,如何在listview中显示对象的id

时间:2015-12-10 11:28:29

标签: android listview android-listview

所以我有一个班级:

class student{
 public int id;
 public String name;
}

然后我有一个学生类型的adapterArray,并且该适配器被传递到列表视图。我想知道如何让listview只显示学生的名字。 代码:

ListView list=(ListView)findViewById(R.id.list_day_wise_expense);
ArrayAdapter<Student> adapter = new ArrayAdapter<Student>( this,R.layout.increase_size_text, kids);
list.setAdapter(adapter);

其中kids是Student的一个对象数组,list是我的列表视图。 我希望列表显示他们的名字。

2 个答案:

答案 0 :(得分:0)

覆盖Intent intent=new Intent(); intent.putExtra("MESSAGE",message); setResult(2,intent); 类中的toString方法。

Student

答案 1 :(得分:0)

您只需要覆盖getView()

    ArrayAdapter<Student> adapter = new ArrayAdapter<Student>(this, R.layout.increase_size_text, kids){
        @Override
        public View getView (int position, View convertView, ViewGroup parent) {
            View view = convertView == null ?
                    super.getView(position, convertView, parent) : convertView;
            TextView tv = (TextView) view.findViewById(R.id./* PUT ID HERE */);
            tv.setText(getItem(position).name);
            return view;
        }
    };

并且您不需要创建自己的布局。这也有效:

    ArrayAdapter<Student> adapter = new ArrayAdapter<Student>(this, android.R.layout.simple_list_item_1, kids){
        @Override
        public View getView (int position, View convertView, ViewGroup parent) {
            View view = convertView == null ?
                    super.getView(position, convertView, parent) : convertView;
            TextView tv = (TextView) view.findViewById(android.R.id.text1);
            tv.setText(getItem(position).name);
            return view;
        }
    };