我有一个像这样的POJO:
public class Color {
private int id;
private int name;
//getter setter
}
在我的AsyncTask中,我调用服务器并获取大量这些对象,然后想要填充我的列表。我是这样做的:
@Override
protected String doInBackground(String... strings) {
colorsList = MyManager.INSTANCE.getService().getColors();
return null;
}
@Override
protected void onPostExecute(String file_url) {
setListAdapter(new ArrayAdapter<Color>(MyActivity.this,R.layout.list_black_text,R.id.name, colorsList));
}
list_black_text
如下所示:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<!-- hidden color id-->
<TextView
android:id="@+id/color_id"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:visibility="gone" />
<!--color name-->
<TextView
android:id="@+id/name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="16dip"
android:textColor="#000000"
android:paddingTop="15dip"
android:paddingBottom="15dip"
android:paddingLeft="10dip"
android:textStyle="bold"/>
</RelativeLayout>
问题
当我运行应用程序时,列表似乎是由对象填充的,所以我看到它填充了像
这样的东西com.my.package.Color@2343fa0
com.my.package.Color@2343fa0
...
我需要更改哪些内容才能看到列表中颜色的名称?
注意:我不想创建单独的字符串数组。我试过了,它的确有效。但我还要求能够检测用户点击颜色名称时点击了哪种ID
颜色。
答案 0 :(得分:0)
该列表使用传递的对象的toString
方法进行显示。因此,如果要显示颜色名称,只需添加名称变量,覆盖toString
方法并返回颜色名称。
public class Color {
private int id;
private int name;
private String strName;
public String toString(){return this.strName;}
//getter setter
}