2013-02-22 2 views
1

В моем приложении мне нужно отправить двухмерную матрицу и еще две целые значения формы на Activity to Another с помощью метода Intent. Это делается ..Не удается получить данные из пакета в моем приложении

 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 метод, чтобы поместить массив в пачке.

Таким образом, чтобы получить доступ к этим данным в приемнике деятельности я использую

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

, но я получил сообщение об ошибке java.lang.NullPointerException ..

Whith из использования «Static» декларации, как я могу получить эти значения из пучка здесь (в приемнике активность ..)

Позвольте мне PLS из этого ..

+0

Я не очень уверен, потому что у меня нет среды тестирования, но вы можете попробовать 'getBundleExtra (String name)', чтобы получить пакет во втором действии. Затем получите массив, используя соответствующий метод. –

ответ

1

шаг 1: Написать отдельный класс компонента и сохранить в другой файл

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

скамейки в 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); 

шаг 3: В деятельности вызывающего абонента

 Bundle b = getIntent().getBundleExtra("obj"); 
     MyBean dData = (MyBean) b.getSerializable("mybean"); 
     String[][] str =dData.get2DArray(); 
0

Не реальный ответ, но попробовать:

что произойдет, если Вы пытаетесь:

Intent intent = getIntent(); 
    int a = intent.getIntExtra("albumid"); //if Your value is an int, otherwise use String 
              //getStringExtra or whatever Your value is 
+0

его хорошо, но здесь мое требование - «доступ к 2D-массиву ... т.е. данные» –

Смежные вопросы