我是 Android 新手。我需要使用customAdapter 将数据从ListView 发送到detailActivity,以显示listView 所选项目中的详细信息项目。我看过一些关于它的帖子,但我仍然对此感到困惑。
你愿意帮助我吗?
这是我的数据类:
公共(public)类ListData{
private String title;
private String desc;
public ListData(String title, String desc) {
this.title = title;
this.desc = desc;
}
public String getTitle() {
return title;
}
public String getDesc() {
return desc;
}
}
这是我的 arrayList 声明:
ArrayList<ListData> data = new ArrayList<ListData>();
data.add(new ListData("Sidik Suhendar", "Telkom University"));
我不知道如何将数组列表数据发送到另一个 Activity 。请帮助我:)也给我一些例子:)谢谢
最佳答案
您需要使您的基础对象 ListData 可分割:
public class ListData implements Parcelable {
private String title;
private String desc;
public ListData(String title, String desc) {
this.title = title;
this.desc = desc;
}
public String getTitle() {
return title;
}
public String getDesc() {
return desc;
}
@Override
public int describeContents() {
return 0;
}
public ListData(Parcel source) {
title = source.readString();
desc = source.readString();
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(title);
dest.writeString(desc);
}
public static final Creator<ListData> CREATOR = new Creator<ListData>(){
@Override
public ListData createFromParcel(Parcel source) {
return new ListData(source);
}
@Override
public ListData[] newArray(int size) {
return new ListData[size];
}
};
}
一旦它是可分包的,您只需在第一个 Activity 中执行以下操作即可:
ArrayList<ListData> data = new ArrayList<ListData>();
data.add(new ListData("Sidik Suhendar", "Telkom University"));
intent.putParcelableArrayListExtra("ARRAY_LIST", data);
您可以在其他 Activity 中将其读取为:
ArrayList<ListData> data = (ArrayList<ListData>) getIntent().getExtras().getParcelableArrayList("ARRAY_LIST");
编辑:
listview.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?>adapter,View v, int position){
ListData item = adapter.getItemAtPosition(position);
Intent intent = new Intent(Activity.this,DetailActivity.class);
intent.putExtra("ARRAY_ITEM", item);
startActivity(intent);
}
});
然后在目标 Activity 中:
ListData data = (ListData) getIntent().getExtras().getParcelable("ARRAY_ITEM");
关于android - 使用 putExtra 传递 ArrayList<Object> 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49354438/