将二维数组传递给另一个活动

如何将2个宗族数组对象作为parameter passing给另一个活动

如何在另一个活动中获得二维数组的string值

String [][]str; Intent l = new Intent(context,AgAppMenu.class); l.putExtra("msg",str); l.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(l); another Activity class String[][] xmlRespone2; xmlRespone2 = getIntent().getExtras().getString("msg"); 

Solutions Collecting From Web of "将二维数组传递给另一个活动"

你可以使用putSerializable。 数组是可序列化的。

储藏:

bundle.putSerializable("list", selected_list); //这里的bundle是Bundle对象。

要访问:

 String[][] passedString_list = (String[][]) bundle.getSerializable("list"); 

 Intent mIntent = new Intent(this, Example.class); Bundle mBundle = new Bundle(); mBundle.putSerializable("list", selected_list); mIntent.putExtras(mBundle); 

这终于适合我了:

开始新的活动(发送String [] []和String):

 String[][] arrayToSend=new String[3][30]; String stringToSend="Hello"; Intent i = new Intent(this, NewActivity.class); i.putExtra("key_string",stringToSend); Bundle mBundle = new Bundle(); mBundle.putSerializable("key_array_array", arrayToSend); i.putExtras(mBundle); startActivity(i); 

在NewActivity.onCreate中访问:

 String sReceived=getIntent().getExtras().getString("key_string"); String[][] arrayReceived=null; Object[] objectArray = (Object[]) getIntent().getExtras().getSerializable("key_array_array"); if(objectArray!=null){ arrayReceived = new String[objectArray.length][]; for(int i=0;i<objectArray.length;i++){ arrayReceived[i]=(String[]) objectArray[i]; } } 

您可以定义一个实现Parcelable的自定义类,并包含从Parcel读取和写入2维数组的逻辑。 之后,把这个可以分类的东西放在Bundle里面运输。

将2dray设置为public static void。 让current_class成为我们创build二维数组的类我们想把数据传递给NewActivity

 Class<?> ourClass=Class.forName("com.example.testapp.NewActivity"); Intent ourIntent= new Intent(current_class.this,ourClass); intent_name.putExtra("name", 2darray_name); startActivity(ourIntent);` 

要在NewActivity中访问它,请使用current_class.2darray_name,其中current_class是最初定义的类。

一个解决scheme是,您可以将其设置为静态,以便您可以在任何活动中使用它。

 Class A{ public static String [][]str; ... Intent l = new Intent(context,AgAppMenu.class); l.putExtra("msg",str); l.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(l); } Class B{ ... you can use it with Just A.(ArrayName) System.out.println(A.str); } 

希望它会帮助你。