我希望通过传递带有id的arraylist来将数据从一个类传递到另一个类。
listviewfirst.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
Intent i= new Intent(MainActivity.this,Questionactivity.class);
// To pass data
i.putExtra("uploadarraylist", uploadarraylist);
startActivity(i);
}
这里我已经传递了数组列表,但基于id no我想将数据传递给下一个活动页面。
答案 0 :(得分:1)
您可以通过Bundle传递数组列表值。
> Intent i= new Intent(context, QuestionActivity.class);
> Bundle bundle = new Bundle();
>
> bundle.putStringArrayList("messages", book_mark);
> bundle.putIntegerArrayList("cell_ids", cell_ids);
> bundle.putIntegerArrayList("cat_ids", cat_ids);
> bundle.putIntegerArrayList("bkmId", bkmId);
> bookmark.putExtras(bundle);
> startActivity(i);
答案 1 :(得分:1)
正如您ArrayList<HashMap<String, Object>> uploadarraylist
并且您希望将给定选定索引的特定HashMap
传递给下一个Activity,然后
listviewfirst.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
HashMap<String, Object> hashMap = uploadarraylist.get(arg2);
Intent i= new Intent(MainActivity.this,Questionactivity.class);
// To pass data
i.putExtra("hashMap", hashMap);
startActivity(i);
}
在 Questionactivity
Intent intent = getIntent();
HashMap<String, Object> hashMap = (HashMap<String, Object>) intent.getSerializableExtra("hashMap");
答案 2 :(得分:0)
将该arrayList作为静态列表,然后使用声明的calss引用在另一个类上使用它。
答案 3 :(得分:0)
你也可以使用下面给出的,所以之后不需要通过Intent:
您可以将ArrayList声明为静态的,如下所示:
public static ArrayList<String> array = new ArrayList<String>();
通过这样做,您可以通过以下方式从任何Activity访问您的ArrayList:
activityname.array;
其中activityname是您声明静态ArrayList的活动或类。
或者如果你想使用意图而不是你可以这样做:
Intent i = new Intent(this,activityname.class);
Bundle bun = new Bundle();
bun.putIntegerArrayListExtra(String name, ArrayList<Integer> value);
//bun.putParcelableArrayListExtra(String name, ArrayList<? extends Parcelable> value);
//bun.putStringArrayListExtra(String name, ArrayList<String> value);
i.putExtra(String name,bun);
startActivity(i);
答案 4 :(得分:0)
如果你有一个arraylist,如:
ArrayList<YourClass> list;
使您的类实现Serializable接口。
之后,您可以在putExtra()方法中添加您的arraylist。
import java.io.Serializable;
public class Bicycle implements Serializable{
public int speed;
public Bicycle(int startSpeed) {
speed = startSpeed;
}
}
在你的活动中:
ArrayList<Bicycle> list = new ArrayList<Bicycle>();
Intent i = new intent(currentActivity.this, nextActivity.class);
i.putExtra("array", list);
startActivity(i);