【问题标题】:android custom listactivity arrayadapterandroid自定义listactivity arrayadapter
【发布时间】:2013-03-07 02:49:13
【问题描述】:

我正试图围绕如何实现自定义 arrayadapter 来为列表活动提供项目,然后在新活动中显示该选定项目。

例如,我正在从 RESTful Web 服务中提取文档列表,并且我想在列表活动中显示这些文档。我对 API 的第一次调用将返回包含两个字段的 JSON 文档:标题和 ID。我想用 UI 中文档的标题填充我的 listactivity。当我单击该项目时,理想情况下,它将打开一个正常的活动,在该活动中它将进行另一个 API 调用,以 JSON 格式返回整个选定的文档并将其显示到新活动的 UI 中。

在谷歌搜索之后,我想出了我认为我需要的步骤:

  1. 创建一个只包含列表项的标题和 ID 的 RecordListItem 类。
  2. 创建一个 RecordListItem 类型的数组适配器。
  3. 将该数组适配器附加到我的列表活动中。
  4. ???

我对将所选项目的 id 传递给正常活动的正确方法感到困惑,因此我可以进行 API 调用以提取该特定记录。这些步骤有意义吗?

我习惯了网络开发,所以这是一种不同的思维方式,我被困住了。有人可以解释正确的步骤,或者可能会指出我在新活动中显示所选项目的教程吗?

【问题讨论】:

    标签: android android-arrayadapter listactivity


    【解决方案1】:

    在您的 ArrayAdapter 构造函数中,您传递带有标题/id 的数组

    public Docs_Array(Context context, Object[] docs) {
       super(context, R.layout.row, docs);
       this.context = context;
       this.docs = docs;
    }
    

    在 getView 方法中,您将设置每一行的布局和信息,“位置”参数是您获取所需文档的方式。如果你想拥有不止一个东西,你可以将 Object[i] 实例转换为另一个数组,比如 title+id。

    public View getView(int position, View convertView, ViewGroup parent) {
       LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
       View rowView = inflater.inflate(R.layout.row, parent, false);
       TextView textView = (TextView)rowView.findViewById(R.id.row_title);
       textView.setText(((String[])docs[position])[0]); // 0 for title.
    }
    

    为每个行视图添加一个 onClickListener,((String[])docs[position])[1] 将为您提供被点击的文档标题的 ID。

    【讨论】:

      【解决方案2】:

      没有看到任何代码,听起来你是在正确的轨道上。我建议也许将 id 存储在 HashMap 中,使用 title 作为 keyid as thevalue. Then, when you select your item you can look up theidusing thetitleand send it to your nextActivity`。我大概就是这样处理的。

      就教程而言,如果您还没有的话,我将从Docs 开始。然后,如果您有一个特定的问题,我相信您可以在 SO 上找到类似的问题,在 Google 上还有更多。希望这会有所帮助

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-08
        • 1970-01-01
        • 1970-01-01
        • 2017-03-12
        相关资源
        最近更新 更多