我想从表中检索所有记录并在另一个活动中显示它,但是当我这样做时,我一次又以相反的顺序获得一条记录。
我希望单项活动中的所有记录
@Override
public void onClick(View v) {
Intent i = new Intent(MainActivity.this, ViewAllActivity.class);//
while (c.moveToNext()) {
i.putExtra("rollno", c.getString(0));
i.putExtra("name", c.getString(1));
i.putExtra("marks", c.getString(2));
startActivity(i);
}
}
});
ViewAllActivity
String rollno=getIntent().getStringExtra("rollno");
String name=getIntent().getStringExtra("name");
String marks=getIntent().getStringExtra("marks");
TextView text;
text=(TextView) findViewById(R.id.text);
String str="Roll no:"+rollno+"\nName:"+name+"\nmarks:"+marks;
text.setText(str);
答案 0 :(得分:1)
你必须创建一个模型来做同样的事情。
示例:
.attr({
height: 30,
y: 20,
x: function (d) {
return barMARGINS.left + d.x;
},
width: function (d) {
return d.value;
}
})
<强>为MyModel 强>
ArrayList<myModel> modelList = new ArrayList<>();
while(c.moveToNext()){
MyModel myModel = new MyModel();
myModel.setRollNumber(c.getString(0));
myModel.setName(c.getString(1));
myModel.setMark(c.getString(2));
modelList.add(myModel);
}
}
});
intent.putParcelableArrayListExtra(TAG, modelList);
startActivity(intent);
模型应该实现Parcelable或Serializable
答案 1 :(得分:0)
我更喜欢在按钮点击中启动您的活动,并在第二个活动中检索数据。
@Override
public void onClick(View v) {
Intent i = new Intent(MainActivity.this, ViewAllActivity.class);
startActivity(i);
}
});
ViewAllActivity
//retrieve data to your cursor
String str = "";
while(c.moveToNext()){
str = str + "Roll no:" + rollno + "\nName:" + name + "\nmarks:" + marks;
text.setText(str);
}
答案 2 :(得分:0)
如果我是你,我只是开始新的意图活动,在第二个活动的某个方法中,oncreate或onstart从db检索你的数据。
但是如果你想把你的数据捆绑发送给另一个,你必须考虑一些事情
1.-你必须创建一个你要发送的对象的lis。
2.-发送带有捆绑的arraylist或对象,你必须实现并扩展Parcelable接口,否则会失败。
3.-如果您使用发送数据vía捆绑,不是一个好主意,可能会削弱您的性能,只要想想如果您的列表是很多对象,并且您想发送vis bundle,app会慢一点。所以想一想。
问候。