1

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

4

5 回答 5

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);
于 2013-02-21T08:50:44.173 回答
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");
于 2013-02-21T09:25:31.843 回答
0

将该 arrayList 设为静态列表,然后使用声明的 cals 引用在另一个类上使用它。

于 2013-02-21T08:47:14.953 回答
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);
于 2013-02-21T08:49:58.197 回答
0

如果您有一个数组列表,例如: ArrayList<YourClass> list; 让您的类实现 Serializable 接口。之后,您可以在 putExtra() 方法中添加您的数组列表。

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);
于 2013-02-21T08:57:17.083 回答