3 回答
TA贡献1893条经验 获得超10个赞
您的 SectionDataModel 需要实现 Parceble 接口。如下所示,您可以实施 -
public class Person implements Parcelable{
String name;
int age;
String sex;
public Person(String name, int age, String sex) {
this.name = name;
this.age = age;
this.sex = sex;
}
public static final Creator<Person> CREATOR = new Creator<Person>() {
@Override
public Person createFromParcel(Parcel in) {
return new BeanClass(in);
}
@Override
public Person[] newArray(int size) {
return new Person[size];
}
};
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(name);
dest.writeInt(age);
dest.writeString(sex);
}
}
将数据从您的适配器类传递到片段或活动 -
@Override
public void onClick(View v){
Toast.makeText(v.getContext(), tvTitle.getText(), LENGTH_SHORT).show();
//passing data to Tab1Fragment
Bundle bundle = new Bundle();
bundle.putParcelableArrayList("SectionDataModels", sectionDataModelList);
intent1.putExtras(bundle);
mContext.startActivity(intent1);
}
在活动中接收 SectionDataModelList -
ArrayList<SectionDataModel> listFromActivity =new ArrayList<>();
listFromActivity=this.getIntent().getExtras().getParcelableArrayList("SectionDataModels");
if (listFromActivity1 != null) {
Log.d("listis",""+listFromActivity1.toString());
}
此外,您可以尝试通过这种方式接收意图数据 - 如果您需要
Bundle bundle = getActivity().getIntent().getExtras();
model = bundle.getParcelable("SectionDataModels");
OR
Bundle bundle = this.getArguments();
if (bundle != null) {
model = bundle.getParcelable("SectionDataModels");
}
TA贡献1828条经验 获得超6个赞
您可以将 arraylist 保留在您的应用程序类中而不是第一个活动中(因为它在整个应用程序中都是相同的),然后只需使用 intent1.putExtra("position",position)
.
在活动 2 中使用
int position = getIntent().getIntExtra("position")
现在只需使用此位置从应用程序类数组列表中获取模型类对象。
添加回答
举报