android 意向放置额外列表[重复]

qq24tv8q  于 2022-12-25  发布在  Android
关注(0)|答案(4)|浏览(117)
    • 此问题在此处已有答案**:

11年前关闭了。

    • 可能重复:**

How to put a List in intent
我想从一个活动传递一个**列表到另一个活动。到目前为止我还没有成功。这是我的代码。
//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);  
}

但是我不能这样把 * 数据 * 放进去,我问了这个问题earlier,但没有发生太多事情。
请帮助。也请帮助我如何在下一个活动中获得 * 数据 *。

piwo6bdm

piwo6bdm1#

假设List是一个字符串列表,将data设为ArrayList<String>并使用intent.putStringArrayListExtra("data", data)
下面是您需要的代码框架:
1.申报清单

private List<String> test;

1.在适当位置初始化列表

test = new ArrayList<String>();

并适当地将数据添加到test
1.传递到意图,如下所示:

Intent intent = getIntent();  
 intent.putStringArrayListExtra("test", (ArrayList<String>) test);

1.按如下方式检索数据:

ArrayList<String> test = getIntent().getStringArrayListExtra("test");
wvyml7n5

wvyml7n52#

如果你使用数组列表而不是列表,那么你的问题也会得到解决。在你的代码中只需要将列表修改为数组列表。

private List<Item> data;
368yc8dk

368yc8dk3#

您可以使用以下两种方法来执行此操作

  • 可序列化
  • 可打包。

本例将向您展示如何使用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
}

现在来看一下this.这个链接将简要介绍如何使用Parcelable实现它。
看看this.,这个讨论会让你知道哪种实现方式更好。
谢谢。

gcuhipw9

gcuhipw94#

//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");

相关问题