在android中如何将模型数组从一个actvtiy传递到另一个actvtiy 公共类数据模型实现可序列化、可打包{ /** */ 私有静态最终长serialVersionUID=4861597073026532544L; 私有字符串cid; 私有字符串名称; /** *@返回cid */ 公共字符串getCid(){ 返回cid; } /** *@param-cid *要设置的cid */ 公共无效设置cid(字符串cid){ this.cid=cid; } /** *@返回名称 */ 公共字符串getName(){ 返回名称; } /** *@param name *要设置的名称 */ 公共void集合名(字符串名){ this.name=名称; } 公共数据模型(包裹中){ 超级(); 从包裹中读取; } public static final Parcelable.Creator=新建Parcelable.Creator(){ 公共数据模型createFromParcel(中的地块){ 返回新的数据模型(in); } 公共数据模型[]新数组(整数大小){ 返回新的数据模型[大小]; } }; 公共无效readFromParcel(地块位于中){ 字符串[]结果=新字符串[23]; in.readStringArray(结果); this.cid=结果[0]; this.name=结果[1]; } 公共int描述内容(){ 返回0; } 公共无效写入包裹(包裹目的地,内部标志){ dest.writeStringArray(新字符串[]{this.cid, 这个名称为}); }}
这是我的数据模型:在android中如何将模型数组从一个actvtiy传递到另一个actvtiy 公共类数据模型实现可序列化、可打包{ /** */ 私有静态最终长serialVersionUID=4861597073026532544L; 私有字符串cid; 私有字符串名称; /** *@返回cid */ 公共字符串getCid(){ 返回cid; } /** *@param-cid *要设置的cid */ 公共无效设置cid(字符串cid){ this.cid=cid; } /** *@返回名称 */ 公共字符串getName(){ 返回名称; } /** *@param name *要设置的名称 */ 公共void集合名(字符串名){ this.name=名称; } 公共数据模型(包裹中){ 超级(); 从包裹中读取; } public static final Parcelable.Creator=新建Parcelable.Creator(){ 公共数据模型createFromParcel(中的地块){ 返回新的数据模型(in); } 公共数据模型[]新数组(整数大小){ 返回新的数据模型[大小]; } }; 公共无效readFromParcel(地块位于中){ 字符串[]结果=新字符串[23]; in.readStringArray(结果); this.cid=结果[0]; this.name=结果[1]; } 公共int描述内容(){ 返回0; } 公共无效写入包裹(包裹目的地,内部标志){ dest.writeStringArray(新字符串[]{this.cid, 这个名称为}); }},android,Android,这是我的数据模型: public class DataModel implements Serializable, Parcelable { /** */ private static final long serialVersionUID = 4861597073026532544L; private String cid; private String name; /** * @return the cid */
public class DataModel implements Serializable, Parcelable {
/** */
private static final long serialVersionUID = 4861597073026532544L;
private String cid;
private String name;
/**
* @return the cid
*/
public String getCid() {
return cid;
}
/**
* @param cid
* the cid to set
*/
public void setCid(String cid) {
this.cid = cid;
}
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name
* the name to set
*/
public void setName(String name) {
this.name = name;
}
public DataModel(Parcel in) {
super();
readFromParcel(in);
}
public static final Parcelable.Creator<DataModel> CREATOR = new Parcelable.Creator<DataModel>() {
public DataModel createFromParcel(Parcel in) {
return new DataModel(in);
}
public DataModel[] newArray(int size) {
return new DataModel[size];
}
};
public void readFromParcel(Parcel in) {
String[] result = new String[23];
in.readStringArray(result);
this.cid = result[0];
this.name = result[1];
}
public int describeContents() {
return 0;
}
public void writeToParcel(Parcel dest, int flags) {
dest.writeStringArray(new String[] { this.cid,
this.name});
}}
public类MainActivity扩展了AppCompatActivity{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
DataModel _modeDataModel=新数据模型(MainActivity.this);
_modeDataModel.setCid(“1”);
_modeDataModel.setName(“Anil”);
Bundle=新Bundle();
bundle.putParcelableArrayList(“通道”,“阵列列表”模型);
意向意向=新意向(MainActivity.this,SecondActivity.class);
意向。额外支出(捆绑);
星触觉(意向);
}
}
主要活动
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
DataModel _modeDataModel=new DataModel(MainActivity.this);
_modeDataModel.setCid("1");
_modeDataModel.setName("Anil");
Bundle bundle = new Bundle();
bundle.putParcelableArrayList("channel",(ArrayList<DataModel>) model);
Intent intent = new Intent(MainActivity.this,SecondActivity.class);
intent.putExtras(bundle);
startActivity(intent);
}
}
公共类SecondActivity扩展了AppCompatActivity{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Bundle getBundle=this.getIntent().getExtras();
列表通道列表=getBundle.getParcelableArrayList(“通道”);
}
}
第二活性
我想在一个列表中的一个活动到另一个活动之间传递数据,但我无法设置值模型也无法将一个活动发送到另一个活动编译时出错,请建议我哪里出错,以及如何将数据从一个活动发送到另一个活动,ArrayList modelArrayList=new ArrayList()//在这里使用模型数组
public class SecondActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Bundle getBundle = this.getIntent().getExtras();
List<DataModel> channelsList = getBundle.getParcelableArrayList("channel");
}
}
DataModel _modeDataModel=新数据模型(MainActivity.this);
_modeDataModel.setCid(“1”);
_modeDataModel.setName(“Anil”);
添加(_modeDataModel);
//这样叫
Bundle=新Bundle();
bundle.putExtra(“通道”,modelArrayList);
意向意向=新意向(MainActivity.this,SecondActivity.class);
意向。额外支出(捆绑);
星触觉(意向);
公共类SecondActivity扩展了AppCompatActivity{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Bundle getBundle=this.getIntent().getExtras();
ArrayList channelsList=(ArrayList)getBundle.getParcelableArrayList(“通道”);
}
}
要发送第一个活动:
ArrayList<DataModel> modelArrayList = new ArrayList<>(); //Use your model array here
DataModel _modeDataModel=new DataModel(MainActivity.this);
_modeDataModel.setCid("1");
_modeDataModel.setName("Anil");
modelArrayList.add(_modeDataModel);
//Call like this way
Bundle bundle = new Bundle();
bundle.putExtra("channel", modelArrayList);
Intent intent = new Intent(MainActivity.this,SecondActivity.class);
intent.putExtras(bundle);
startActivity(intent);
public class SecondActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Bundle getBundle = this.getIntent().getExtras();
ArrayList<DataModel> channelsList = (ArrayList<DataModel>) getBundle.getParcelableArrayList("channel");
}
}
Bundle bundle = new Bundle();
bundle.putParcelable("channel", _modeDataModel);
Intent intent = new Intent(MainActivity.this,SecondActivity.class);
intent.putExtras(bundle);
startActivity(intent);
要在第二个活动中检索:
ArrayList<DataModel> modelArrayList = new ArrayList<>(); //Use your model array here
DataModel _modeDataModel=new DataModel(MainActivity.this);
_modeDataModel.setCid("1");
_modeDataModel.setName("Anil");
modelArrayList.add(_modeDataModel);
//Call like this way
Bundle bundle = new Bundle();
bundle.putExtra("channel", modelArrayList);
Intent intent = new Intent(MainActivity.this,SecondActivity.class);
intent.putExtras(bundle);
startActivity(intent);
public class SecondActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Bundle getBundle = this.getIntent().getExtras();
ArrayList<DataModel> channelsList = (ArrayList<DataModel>) getBundle.getParcelableArrayList("channel");
}
}
Bundle bundle = new Bundle();
bundle.putParcelable("channel", _modeDataModel);
Intent intent = new Intent(MainActivity.this,SecondActivity.class);
intent.putExtras(bundle);
startActivity(intent);
您可以通过以下方式创建数据模型:
Bundle getBundle = this.getIntent().getExtras();
DataModel model = getBundle.getParcelable("channel");
但DataModel类没有接受活动的构造函数
将此构造函数添加到DataModelClass
DataModel _modeDataModel=new DataModel(MainActivity.this);
或者将该行更改为:
public DataModel(Activity activity){
}
毕竟,将Datamodel数组发送到另一个活动,如下所示:
DataModel _modeDataModel=new DataModel();
ArrayList数组=新的ArrayList;
数据模型_modeDataModel=新数据模型();
_modeDataModel.setCid(“1”);
_modeDataModel.setName(“Anil”);
add(_modeDataModel);
//添加任何您想要的号码
意向意向=新意向(MainActivity.this,SecondActivity.class);
intent.putParcelableArrayListExtra(“键”,数组);
星触觉(意向);
在第二项活动中:
ArrayList<DataModel> array = new ArrayList<>;
DataModel _modeDataModel=new DataModel();
_modeDataModel.setCid("1");
_modeDataModel.setName("Anil");
array.add(_modeDataModel);
//Add any number you want
Intent intent = new Intent(MainActivity.this,SecondActivity.class);
intent.putParcelableArrayListExtra("Key",array);
startActivity(intent);
ArrayList array2=getIntent().getParcelableArrayListExtra(“键”);
我希望有用。将您的主要活动更改为:
ArrayList<DataModel> array2 = getIntent().getParcelableArrayListExtra("Key");
并将空参数构造函数添加到数据模型:-
public void readFromParcel(Parcel in) {
String[] result = new String[2];
in.readStringArray(result);
this.cid = result[0];
this.name = result[1];
}
您可以使用以下模型类的Serializable try传递模型对象的ArrayList:
public DataModel() {
super();
}
启动活动:
import java.io.Serializable;
public class DataModel implements Serializable {
/** */
private static final long serialVersionUID = 4861597073026532544L;
private String cid;
private String name;
public String getCid() {
return cid;
}
public void setCid(String cid) {
this.cid = cid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
DataModel DataModel=newdatamodel();
dataModel.setCid(“1”);
dataModel.setName(“用户”);
ArrayList models=新的ArrayList();
models.add(dataModel);
意向意向=新的意向(MainActivity.this,SecondActivity.class);
意向。额外(“数据”,模型);
星触觉(意向);
第二项活动:
DataModel dataModel = new DataModel();
dataModel.setCid("1");
dataModel.setName("User");
ArrayList<DataModel> models = new ArrayList<>();
models.add(dataModel);
Intent intent=new new Intent(MainActivity.this,SecondActivity.class);
intent.putExtra("data",models);
startActivity(intent);
ArrayList data=new ArrayList();
addAll((ArrayList)getIntent().getSerializableExtra(“数据”));
您有很多错误,“模型”这是什么?您可以创建一个名为“\u modeDataModel”的模型。那么,当你只想发送一个模型时,为什么要发送一个ArrayList呢?请建议我如何设置值以及如何传递它,我只需设置一个静态值名称和id,例如@carnalook at my answerError is coming DataModel\u modeDataModel=new DataModel(MainActivity.this);putParcelableArrayList(“通道”(channel),(ArrayList)模型);错误出现在第一个活动中,而不是第二个活动中如何设置值以及如何传递错误@Jd Prajapahow在数据模型中设置一些值为什么要使用数组?看,我们必须发送一些统计信息