Android 将二维数组传递给另一个活动
如何将2个教派数组对象作为参数传递给另一个活动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
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);`