我正试图围绕如何实现自定义arrayadapter来为列表活动提供项目,然后在新活动中显示所选项目。
例如,我从RESTful Web服务中提取文档列表,我想在listactivity中显示这些文档。我第一次调用API将返回包含两个字段的文档的JSON:title和id。我想用UI中的文档标题填充我的listactivity。当我点击它的项目时,理想情况下,它将打开一个正常的活动,它将进行另一个API调用,以JSON格式返回整个所选文档并将其显示到新活动的UI中。
在谷歌搜索后,我想出了我认为我需要的步骤:
我对将所选项目的ID传递给正常活动的正确方法感到困惑,因此我可以调用API来拉取该特定记录。这些步骤有意义吗?
我已经习惯了网络开发,所以这是一种不同的思维方式,我被困住了。有人可以解释正确的步骤,或者可能指向一个在新活动中显示所选项目的教程吗?
答案 0 :(得分:2)
在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,你可以将Object [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。
答案 1 :(得分:1)
没有看到任何代码,听起来你是在正确的轨道上。我建议可以使用HashMap
作为title
和key
值id as the
id . Then, when you select your item you can look up the
title {{using the
将{}保存在and send it to your next
中1}} Activity`。这可能就是我如何处理它。
就教程而言,如果你还没有,我会从Docs开始。然后,如果您遇到特定问题,我相信您可以在Google上找到类似的问题以及更多问题。希望这有帮助