56 android
可能重复:
如何将List放入intent中
我想将List从一个活动传递到另一个活动.到目前为止,我还没有成功.这是我的代码.
//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);
}
Run Code Online (Sandbox Code Playgroud)
Man*_*del 115
假设您的List是一个字符串列表,可以ArrayList<String>
使用数据intent.putStringArrayListExtra("data", data)
这是您需要的代码的框架:
声明清单
private List<String> test;
Run Code Online (Sandbox Code Playgroud)初始列表在适当的地方
test = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)
并根据需要添加数据test
.
传递意图如下:
Intent intent = getIntent();
intent.putStringArrayListExtra("test", (ArrayList<String>) test);
Run Code Online (Sandbox Code Playgroud)检索数据如下:
ArrayList<String> test = getIntent().getStringArrayListExtra("test");
Run Code Online (Sandbox Code Playgroud)希望有所帮助.
Sun*_*hoo 19
如果您使用ArrayList而不是list,那么您的问题也将得到解决.在您的代码中只将List修改为ArrayList.
private List<Item> data;
Run Code Online (Sandbox Code Playgroud)
N-J*_*JOY 11
你可以用两种方式做到这一点
序列化
Parcelable.
此测试将向您展示如何使用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
}
Run Code Online (Sandbox Code Playgroud)
现在来看看 这个. 此链接将简要介绍如何使用Parcelable实现它.
看看 这个..这个讨论会让你知道哪个是更好的实现方法.
谢谢.
归档时间: |
|
查看次数: |
90701 次 |
最近记录: |