У меня есть POJO так:Как я могу заполнить ArrayAdapter объектами?
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>
Вопрос
Когда я запустить приложение в списке, кажется, заполняется объектами, так что я вижу его заселена с такими материалами, как
[email protected]
[email protected]
...
Что мне нужно изменить, чтобы я мог видеть имя цвета в списке?
Примечание: я не хочу создавать отдельный массив строк. Я пробовал это, и он работает. Но у меня есть дополнительное требование, чтобы определить, какой цвет был нажат, когда пользователь нажимает на имя цвета.
Спасибо. Я только что обновил вопрос запиской. Кроме того, я хочу иметь возможность обнаруживать «ID» имени цвета, которое пользователь нажимал. Итак, если я просто перезаписал 'toString', я бы не смог обнаружить, какой пользователь' ID' щелкнул справа.? – birdy
Вы все еще можете получить идентификатор. Объект 'ColorWrapper' содержит объект' Color', который содержит идентификатор. Когда пользователь выбирает элемент, получает выбранный ColorWrapper, получает объект цвета из обертки, тогда вы можете получить свой идентификатор. –
Спасибо. Дай мне попробовать. – birdy