Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将二维数组传递给另一个活动_Android_Multidimensional Array_Parcelable - Fatal编程技术网

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

Android 将二维数组传递给另一个活动,android,multidimensional-array,parcelable,Android,Multidimensional Array,Parcelable,如何将2个教派数组对象作为参数传递给另一个活动 String [][]str; Intent l = new Intent(context,AgAppMenu.class); l.putExtra("msg",str); l.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(l); ano

如何将2个教派数组对象作为参数传递给另一个活动

   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");
如何在另一个活动中获取二维数组字符串值

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

您可以定义一个自定义类,该类实现了
Parcelable
,并包含从地块读写二维数组的逻辑。然后,将该可包裹对象放入
包中进行运输。

您可以使用可序列化的数组

储存:

bundle.putSerializable(“列表”,选中的列表)//这里bundle是bundle对象

要访问:

String[][] passedString_list = (String[][]) bundle.getSerializable("list");
例子
一种解决方案是,您可以将其设置为静态,以便您可以在任何活动中使用它

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);

}

希望它能对您有所帮助。

这终于对我有效了:

要启动新活动(发送字符串[]和字符串):

要在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];
    }
}
String sReceived=getIntent().getExtras().getString(“key_String”);
字符串[][]arrayReceived=null;
Object[]objectArray=(Object[])getIntent().getExtras().getSerializable(“key_array_array”);
if(objectArray!=null){
arrayReceived=新字符串[objectArray.length][];

对于(inti=0;i将2darray设置为publicstaticvoid。 让当前_类成为我们创建2d数组的类 我们希望将数据传递给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);`
Class-ourClass=Class.forName(“com.example.testapp.NewActivity”);
Intent-ourIntent=新的Intent(当前_类。this,ourClass);
intent_name.putExtra(“name”,2darray_name);
星触觉(ourIntent)`

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

当我在不同的类中访问此对象时,bunvle会在创建(Bundle savedInstanceState)时使errorpublic void{super.onCreate(savedInstanceState);setContentView(R.layout.agappmenu);mno=getIntent().getExtras().getString(“mno”);pinno=getIntent().getExtras().getString(“pinno”);String[]xmlRespone2=(String[]])bundle.getSerializable(“msg”);无法在我访问此文件的另一个活动中解析捆绑包value@ChristinaAyers。如果我的答案对您有效,请接受。@Chiragrava您好,我尝试过执行您的步骤,但当我转到
resultMatrix=(double[][])bundle.getSerializable(“resultMatrix”);
,我遇到了异常
java.lang.Object[]无法转换为double[]]
Class<?> ourClass=Class.forName("com.example.testapp.NewActivity");
Intent ourIntent= new Intent(current_class.this,ourClass);
intent_name.putExtra("name", 2darray_name);
startActivity(ourIntent);`