我有一个普通的ListView:
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:dividerHeight="10dp" />
我使用Alert对象的ArrayList填充listview:
// Get ListView object from XML
listView = (ListView) findViewById(android.R.id.list);
// Create a new Adapter
ArrayAdapter<Alert> adapter = new ArrayAdapter<Alert>(this, android.R.layout.activity_list_item, android.R.id.text1, DataSourceHandler.getAlertsList());
// Assign adapter to ListView
listView.setAdapter(adapter);
DataSourceHandler.getAlertsList()向我返回对象的ArrayList,在我的ListView中,我现在看到两个这样的项目:
这两个Alert对象有一个名为getName()的方法,它返回一个String,我想用它作为列表中此项的显示名称,而不是我上面提到的。
我该怎么做?
答案 0 :(得分:4)
正如评论中已经提到的那样,标准ArrayAdapter
实现会对列表中的每个对象调用toString()
,并使用生成的String
填充视图。最简单的解决方案是通过在其中调用toString()
方法来覆盖getName()
。如果它不符合您的需求,那么您应该创建一个自定义适配器。
答案 1 :(得分:2)
是的,覆盖toString()
是解决方案,例如: