1

在我的应用程序中,我需要借助 Intent 方法将 Activity 上的二维数组和另外两个整数值形式发送到另一个。这是作为..

     Intent i = new Intent(getApplicationContext(), ViewActivity.class);
            Bundle postbundle = new Bundle();
            String[][] X={{"abc"},{"def"}};
            postbundle.putSerializable("data", X);
            i.putExtra("A", postbundle);

            i.putExtra("albumid", position);
            i.putExtra("Bigcard",bigcard);

这里使用 .putSerializable 方法将数组放入包中。

因此,要在接收器 Activity 中访问这些数据,我正在使用

     Bundle bundle = getIntent().getBundleExtra("A");       
    String[][] ABC=(String[][]) bundle.getSerializable("data");
    Log.e("Array is",""+ABC);

但我收到 java.lang.NullPointerException错误消息..

在不使用“ 静态”声明的情况下,我如何从捆绑包中获取这些值(在接收器活动中..)

让我从这个..

4

2 回答 2

1

step-1:编写一个单独的bean类并保存到另一个文件中

public class MyBean implements Serializable{
String[][] data = null;
public void set2DArray(String[][] data){
    this.data = data;
}
public String[][] get2DArray(){
    return data;
 }
}

step-2:在调用活动中

        Intent intent = new Intent(this, Second.class);

   String data[][] = new String[][] {{"1","kumar"},{"2","sona"},{"3","kora"},{"1","pavan"},{"2","kumar"},{"3","kora333"}};
    MyBean bean = new MyBean();
    bean.set2DArray(data);
    Bundle b = new Bundle();
    b.putSerializable("mybean", bean);
    intent.putExtra("obj", b);
    startActivity(intent);

step-3:在调用者活动中

        Bundle b = getIntent().getBundleExtra("obj");
       MyBean dData = (MyBean) b.getSerializable("mybean");
       String[][] str =dData.get2DArray();
于 2013-02-22T12:16:02.193 回答
0

不是一个真正的答案,而是一个尝试:

如果您尝试:

    Intent intent = getIntent();
    int a = intent.getIntExtra("albumid"); //if Your value is an int, otherwise use String
                                           //getStringExtra or whatever Your value is
于 2013-02-22T11:18:36.447 回答