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(“测试”);
    

  • 希望能有所帮助。

    您可以通过两种方式使用

    • 可序列化

    • 可包裹的

    本示例将向您展示如何使用serializable实现它

    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;