1

在我的代码中启动 karsilastir 活动时,我总是得到 nullPointerException,这里发送活动代码:

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

2 回答 2

2

这取决于数组列表的类型(从这里复制)

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

然后,您可以通过将 put 替换为 get 并将键字符串作为参数来读取您的下一个活动,例如

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);   
于 2012-05-26T13:16:17.353 回答
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);
        }
    }
于 2012-05-26T13:25:54.487 回答