我在Android上是新手。我需要使用customAdapter将数据从ListView发送到detailActivity,该数据显示listView所选项目中的详细信息。我已经看到了一些关于它的文章,但我仍然对此感到困惑。
你能帮我吗?
这是我的数据类:
公共类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"));
我不知道如何将我的arraylist数据发送到另一个活动。请帮助我:)也给我一些例子:)谢谢
最佳答案
您需要使基础对象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];
}
};
}
一旦可包裹,您可以在第一个活动中简单地做:
ArrayList<ListData> data = new ArrayList<ListData>();
data.add(new ListData("Sidik Suhendar", "Telkom University"));
intent.putParcelableArrayListExtra("ARRAY_LIST", data);
您可以在其他活动中将其阅读为:
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);
}
});
然后在目标活动中:
ListData data = (ListData) getIntent().getExtras().getParcelable("ARRAY_ITEM");
关于android - 使用putExtra传递ArrayList <Object>数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49354438/