Android 意图.额外列表
可能重复:Android 意图.额外列表,android,Android,可能重复: 我想将列表从一个活动传递到另一个活动。到目前为止,我还没有成功。这是我的密码 //desserts.java private List<Item> data; @Override public void onCreate(Bundle icicle) { //Code data.add(new Item(10, "dessert1")); data.add(new Item(11, "dessert2")); data.add(new Item(12, "dess
我想将列表从一个活动传递到另一个活动。到目前为止,我还没有成功。这是我的密码 //desserts.java
private List<Item> data;
@Override
public void onCreate(Bundle icicle) {
//Code
data.add(new Item(10, "dessert1"));
data.add(new Item(11, "dessert2"));
data.add(new Item(12, "dessert3"));
data.add(new Item(13, "dessert4"));
data.add(new Item(14, "dessert5"));
data.add(new Item(15, "dessert6"));
data.add(new Item(16, "dessert7"));
data.add(new Item(17, "dessert8"));
data.add(new Item(18, "dessert9"));
data.add(new Item(19, "dessert10"));
data.add(new Item(20, "dessert11"));
//Some more code
}
@Override
public void onClick(View v) {
Intent view_order_intent = new Intent(this, thirdpage.class);
view_order_intent.putExtra("data", data);
startActivity(view_order_intent);
}
私有列表数据;
@凌驾
创建公共空间(捆绑冰柱){
//代码
添加数据(新项目(10,“甜点1”);
添加数据(新项目(11,“甜点2”);
添加数据(新项目(12,“甜点3”);
添加数据(新项目(13,“甜点4”);
添加数据(新项目(14,“甜点5”);
添加数据(新项目(15,“甜点6”);
添加数据(新项目(16,“甜点7”);
添加数据(新项目(17,“甜点8”);
添加数据(新项目(18,“甜点9”);
添加数据(新项目(19,“甜点10”);
添加数据(新项目(20,“甜点11”);
//还有代码吗
}
@凌驾
公共void onClick(视图v){
意向视图\顺序\意向=新意向(此,thirdpage.class);
查看\u订单\u意图.putExtra(“数据”,数据);
启动性(视图、顺序、意图);
}
但我不能这样说数据。我问了这个问题,但没有发生什么事。请帮忙。还可以帮助我如何在下一个活动中获取数据 假设您的列表是字符串列表,则将数据设置为
ArrayList
并使用intent.putStringArrayListExtra(“数据”,数据)
//To send from the activity that is calling another activity via myIntent
myIntent.putExtra("id","10");
startActivity(myIntent);
//To receive from another Activity
Bundle bundle = getIntent().getExtras();
String id=bundle.getString("id");
以下是您需要的代码框架:
private List<String> test;
Intent intent = getIntent();
intent.putStringArrayListExtra("test", (ArrayList<String>) test);
ArrayList<String> test = getIntent().getStringArrayListExtra("test");
ArrayList test=getIntent().getStringArrayListExtra(“测试”);
希望能有所帮助。您可以通过两种方式使用
- 可序列化
- 可包裹的
class Customer implements Serializable
{
// properties, getter setters & constructor
}
// This is your custom object
Customer customer = new Customer(name, address, zip);
Intent intent = new Intent();
intent.setClass(SourceActivity.this, TargetActivity.this);
intent.putExtra("customer", customer);
startActivity(intent);
// Now in your TargetActivity
Bundle extras = getIntent().getExtras();
if (extras != null)
{
Customer customer = (Customer)extras.getSerializable("customer");
// do something with the customer
}
现在看一下这个链接,它将为您简要介绍如何使用Parcelable实现它
看。本次讨论将让您知道哪种方法更适合实现它
谢谢。如果您使用ArrayList而不是list,那么您的问题也会得到解决。 在代码中,仅将列表修改为ArrayList
private List<Item> data;
私有列表数据;
我们将不胜感激。像这样的评论不会有帮助。它是如何发送数据的,这是一个列表?什么是“10”?id是您可以从中检索的字符串。10是您正在发送的数据。在最后一行中,如果您使用id,您将得到来自调用方活动的10是的,我尝试了这一点,正如我在代码中所写的。没有帮助。没有用于接收列表的捆绑方法。因此,您的代码不起作用。请改用字符串数组。您的意思是我应该将其声明为ArrayList或将其初始化为ArrayList?但这样我只能在列表中插入一项。我想要两个字符串,这是我通过item对象得到的。我甚至没有注意到有像putStringArrayListExtra这样的方法,而是将我的整数列表存储为int数组。所以,谢谢你@Mandel如果它是一个自定义对象呢?这实际上并没有回答如何将列表放入意图中的问题。仅介绍如何将单个特定项目放入意向书中。@N-JOY您有与客户一起做某事的示例代码吗。。。如何循环浏览客户模型并获取每个模型的信息?非常感谢。稍后您可以通过ArrayList items=(ArrayList)getArguments().getSerializable(EXTRA_items)读取列表代码>。
private List<Item> data;