android自定义listactivity arrayadapter

android自定义listactivity arrayadapter,android,android-arrayadapter,listactivity,Android,Android Arrayadapter,Listactivity,我正试图了解如何实现自定义arrayadapter,为列表活动提供项目,然后在新活动中显示所选项目 例如,我从RESTful web服务中提取文档列表,并希望在listactivity中显示这些文档。我对API的第一次调用将返回带有两个字段的文档JSON:title和id。我想用UI中文档的标题填充我的listactivity。当我单击该项目时,理想情况下,它将打开一个普通活动,在该活动中,它将进行另一个API调用,以JSON格式返回整个选定文档,并将其显示到新活动的UI中 在谷歌搜索之后,我想

我正试图了解如何实现自定义arrayadapter,为列表活动提供项目,然后在新活动中显示所选项目

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

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

  • 创建一个RecordListItem类,该类将仅包含列表项的标题和id
  • 创建RecordListItem类型的arrayadapter
  • 将该arrayadapter附加到我的listactivity
  • 我不知道如何将所选项目的id传递给正常活动,以便调用API来提取特定记录。这些步骤有意义吗


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

    在没有看到任何代码的情况下,听起来你的思路是正确的。我建议将id存储在
    HashMap
    中,使用
    标题作为
    键,使用
    id作为
    。然后,当您选择项目时,您可以使用
    title
    查找
    id
    ,并将其发送到下一个
    Activity`。我可能会这样处理


    至于教程,若你们还并没有开始的话,我会从开始。然后,如果你有一个特定的问题,我相信你可以在谷歌上找到人们曾经遇到过的类似问题。希望这对您有所帮助

    在没有看到任何代码的情况下,听起来您的思路是正确的。我建议将id存储在
    HashMap
    中,使用
    标题作为
    键,使用
    id作为
    。然后,当您选择项目时,您可以使用
    title
    查找
    id
    ,并将其发送到下一个
    Activity`。我可能会这样处理


    至于教程,若你们还并没有开始的话,我会从开始。然后,如果你有一个特定的问题,我相信你可以在谷歌上找到人们曾经遇到过的类似问题。希望这有助于

    在ArrayAdapter构造函数中,通过title/id传递数组

    public Docs_Array(Context context, Object[] docs) {
       super(context, R.layout.row, docs);
       this.context = context;
       this.docs = docs;
    }
    
    在getView方法中,您将设置每行的布局和信息,“position”参数是您获取所需文档的方式。如果您想拥有多个对象,如title+id,可以将对象[i]实例强制转换为另一个数组

    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。

    在ArrayAdapter构造函数中,您将使用标题/id传递数组

    public Docs_Array(Context context, Object[] docs) {
       super(context, R.layout.row, docs);
       this.context = context;
       this.docs = docs;
    }
    
    在getView方法中,您将设置每行的布局和信息,“position”参数是您获取所需文档的方式。如果您想拥有多个对象,如title+id,可以将对象[i]实例强制转换为另一个数组

    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添加到每个行视图中,((字符串[])docs[position])[1]将为您提供单击的文档标题的id