从一个车厢通票特别ID ArrayList的另一个Android中(Pass the arrayli

2019-09-29 12:47发布

我希望通过将数组列表与ID传递从一类到另一个数据..

 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我想将数据传递到下一个活动页面。

Answer 1:

当你拥有ArrayList<HashMap<String, Object>> uploadarraylist

你想通过特定HashMap给定选择指数下一个活动,然后,

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


Answer 2:

您可以通过捆绑传递数组列表值。

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


Answer 3:

作出这样的ArrayList的静态列表,然后通过声明CALSS参考使用另一个类。



Answer 4:

如果你有一个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);


Answer 5:

您也可以使用这个下面给出的,所以以后就没有必要通过意图传递:

你可以宣布你的ArrayList作为一个静态这样的:

public static ArrayList<String> array = new ArrayList<String>(); 

通过这样做,你可以从任何活动通过访问您的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);


文章来源: Pass the arraylist with particular id from one class to another in Android