【问题标题】:Get specific item property on onListItemClick() using custom ArrayAdapter<>使用自定义 ArrayAdapter<> 获取 onListItemClick() 上的特定项目属性
【发布时间】:2011-02-21 12:55:10
【问题描述】:

我有一个ListActivity,它显示了我从互联网上的网络服务获取的搜索结果列表。我将收到的 XML 解析为 ArrayList&lt;MyObjects&gt;,然后使用我自己的适配器绑定到 ListView(如 MyObjectAdapter 扩展 ArrayAdapter&lt;MyObject&gt;)。

那么我希望用户能够点击列表中的一项。每个项目都有一个标识符,然后将其放入一个意图并发送到一个新的活动(然后基于此触发一个新的 Web 服务请求,下载其余数据)。但是我不知道如何获得被选中的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);
}

【问题讨论】:

    标签: android


    【解决方案1】:

    如果您使用 ArrayAdapter,则必须使用数组初始化该适配器,对吗?所以,最好的办法是使用从onListItemClick 获得的postition 并从原始数组中获取对象。

    例如:

    // somewhere you have this
    ArrayList<MyObjects> theItemsYouUsedToInitializeTheArrayAdapter;
    
    // and inside onListItemClick....
    String myObjectId = theItemsYouUsedToInitializeTheArrayAdapter.get(position).getObjectId();
    

    【讨论】:

      【解决方案2】:

      试试这个getIntent().getExtras().getString(key);

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-05-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-18
        • 2017-03-06
        相关资源
        最近更新 更多