我有一个 ListActivity
显示我从 Internet 上的 Web 服务获取的搜索结果列表。我将收到的 XML 解析为 ArrayList<MyObjects>
然后我绑定(bind)到 ListView
使用我自己的适配器(如 MyObjectAdapter
扩展 ArrayAdapter<MyObject>
)。
那么我希望用户能够单击列表中的一项。每个项目都有一个标识符,然后将其放入 Intent 并发送到新 Activity (然后基于此触发新的网络服务请求,下载其余数据)。但我不知道如何获得 MyObject
的这一属性被选中。
这是 onListItemClick()
目前的方法:
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
String myObjectId;
// I want to get this out of the selected MyObject class here
Intent i = new Intent(this, ViewObject.class);
i.putExtra("identifier_key", myObjectId);
startActivityForResult(i, ACTIVITY_VIEW);
}
最佳答案
如果您使用的是 ArrayAdapter,则必须使用数组初始化该适配器,对吗?因此,您可以做的更好的做法是使用从 onListItemClick
获得的 postition
并从原始数组中获取对象。
例如:
// somewhere you have this
ArrayList<MyObjects> theItemsYouUsedToInitializeTheArrayAdapter;
// and inside onListItemClick....
String myObjectId = theItemsYouUsedToInitializeTheArrayAdapter.get(position).getObjectId();
关于android - 使用自定义 ArrayAdapter<> 在 onListItemClick() 上获取特定项目属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5066220/