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