2012-05-26 187 views
1

我总是得到NullPointerException异常而开始karsilastir活动在我的代码 这里发送活动代码:传递ArrayList的活动到活动

karsilastir.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 

       Intent intent_notify=new Intent(); 
       intent_notify.setClass(Evraka1Activity.this,karsilastir.class); 

      Bundle bundle=new Bundle(); 

       bundle.putStringArrayList("urunler", urunler); 

       intent_notify.putExtra("urunler",bundle); 

       //startService(intent_notify); 
       startActivity(intent_notify); 
} 

这里接收活动代码:

public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.karsilastirmasonuclari); 
     Intent intent = getIntent(); 

     Bundle b = intent.getExtras(); 
     gelenurunler = b.getStringArrayList("urunler"); 
} 

回答

2

这取决于类型的ArrayList(从here复制)

  1. putIntegerAr rayListExtra(字符串名称,ArrayList的值)
  2. putParcelableArrayListExtra(字符串名称,ArrayList的值)
  3. putStringArrayListExtra(字符串名称,ArrayList的值)
  4. putCharSequenceArrayListExtra(字符串名称,ArrayList的值)

然后你就可以通过替换把与密钥字符串作为参数,得到你下一个活动读取,如

myIntent.getStringArrayListExtra("arrayPeople"); 

更新::

Intent i = new Intent(this,name.class); 
Bundle b = new Bundle(); 
b.putIntegerArrayListExtra(String name, ArrayList<Integer> value); 
i.putExtra(String name,b); 
startActivity(i); 

并获得数据到像

Bundle b = getIntent().getExtra().putParcelableArrayListExtra(String name); 
+0

我尝试从任何你的链接说,但它不也行 – cyo

+0

b.putIntegerArrayListExtra(字符串名称,ArrayList的值);我得到了编译错误,它说:“该方法putStringArrayListExtra(String,ArrayList )未定义类型Bundle“ – cyo

0

另一个活动创建一个成员场局部变量类的顶部。 m表示成员字段,是Android编码风格标准的一部分。查看Android记事本教程以供参考。

http://developer.android.com/resources/tutorials/notepad/notepad-ex2.html

public class karsilastir extends ListActivity { 

/* Create an instance variable just below the class constructor. */  
ArrayList mUrunler; 

.... 

karsilastir.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 

      Intent intent_notify=new Intent(); 
      intent_notify.setClass(Evraka1Activity.this,karsilastir.class); 

     Bundle bundle=new Bundle(); 

      bundle.putStringArrayList("urunler", mUrunler); 

      intent_notify.putExtra("urunler",bundle); 

      //startService(intent_notify); 
      startActivity(intent_notify); 
     } 
    } 
+0

我有这样的2个课程 – cyo

相关问题