gpt4 book ai didi

android - 使用 putExtra 传递 ArrayList 数据
转载 作者:行者123 更新时间:2023-11-30 00:04:02 25 4
gpt4 key购买 nike

我是安卓新手。我需要使用 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"));

我不知道如何将我的 arraylist 数据发送到另一个 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/

25 4 0