如何将列表从课程传递到活动?

时间:2018-08-20 12:16:00

标签: java android list class android-activity

我在java类的方法中声明了一个List对象,该对象在该方法中填充了数据。现在,我想将填充列表传递给另一个活动。我该怎么办?

4 个答案:

答案 0 :(得分:0)

如果您在JAVA类中,并且想在Activity中调用列表,他们只需将方法的返回类型作为list并在所需的Activity中调用即可。演示代码如下

class ReturnList{
public List method(){
  List list=new ArrayList();
  return list;}
}
class ActivityDemo extends Activity{
  onCreate(){
 ///activity code
 ReturnList returnListObj=new ReturnList();
 List listData= returnListObj.method();
 //deal with list here 
 }}

答案 1 :(得分:0)

首先将您的对象类设为parcelable

以捆绑方式传递数据

Intent intent = new Intent(getApplicationContext(),YourActivity.class);
Bundle bundle = new Bundle();
bundle.putParcelable("data", yourObject);
intent.putExtras(bundle);
startActivity(intent);

检索数据:

Bundle bundle = getIntent().getExtras();
yourObject = bundle.getParcelable("data");

希望它会有所帮助:)

答案 2 :(得分:0)

如下定义您的课程

public class CategoryEntity implements Parcelable{
public int id;
public String name;
public String imageOriginal;
public String imageThumb;
public String description;
public String status;
public String createdAt;
public String updatedAt;
public int imageDummy;

protected CategoryEntity(Parcel in) {
    id = in.readInt();
    name = in.readString();
    imageOriginal = in.readString();
    imageThumb = in.readString();
    description = in.readString();
    status = in.readString();
    createdAt = in.readString();
    updatedAt = in.readString();
    imageDummy = in.readInt();
}

public static final Creator<CategoryEntity> CREATOR = new Creator<CategoryEntity>() {
    @Override
    public CategoryEntity createFromParcel(Parcel in) {
        return new CategoryEntity(in);
    }

    @Override
    public CategoryEntity[] newArray(int size) {
        return new CategoryEntity[size];
    }
};

@Override
public int describeContents() {
    return 0;
}

@Override
public void writeToParcel(Parcel dest, int flags) {
    dest.writeInt(id);
    dest.writeString(name);
    dest.writeString(imageOriginal);
    dest.writeString(imageThumb);
    dest.writeString(description);
    dest.writeString(status);
    dest.writeString(createdAt);
    dest.writeString(updatedAt);
    dest.writeInt(imageDummy);
}
}

使用捆绑包传递数据

startActivity(new Intent(CategoriesListingActivity.this, StoryDetailActivity.class)
                        .putExtra("List", your list with model class));

在其他活动中处理您的列表

Bundle extra = getIntent().getExtras();
    if (extra != null) {
        storyList = (ArrayList<CategoryEntity>) extra.getParcelable("StoryListing");

    }

希望这会对您有所帮助。

答案 3 :(得分:0)

例如,在intent.putExtra()中传递您的列表

Intent intent = new Intent(getApplicationContext() , YourNextActivity.class); intent.putExtra("list" , (Serializable) yourList); startActivity(intent);

并在NextActivity中获取列表

Intent intent = getIntent(); intent.getSerializableExtra("list");