即时新手在Android上。我需要将带有customAdapter的ListView数据发送到detailActivity,以显示listView所选项目中的详细信息项目。我看过一些关于它的帖子,我仍然对此感到困惑。
你能帮助我吗?这是我的数据类:
public class 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数据发送到另一个活动。请帮帮我:)给我一些例子:)谢谢
答案 0 :(得分:1)
您需要创建基础对象ListData parcelable:
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");
答案 1 :(得分:0)
第一步:ListData实现Parcelable:
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;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(this.title);
dest.writeString(this.desc);
}
protected ListData(Parcel in) {
this.title = in.readString();
this.desc = in.readString();
}
public static final Parcelable.Creator<ListData> CREATOR = new Parcelable.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 intent = new Intent(this, TargetActivity.class);
intent.putParcelableArrayListExtra("data",data);
第三步:接收数据
ArrayList<ListData> data = intent.getParcelableArrayListExtra("data");
答案 2 :(得分:0)
您可以将序列化或parcelable用于将对象从一个活动移动到另一个活动