我有2项活动 当我单击Board中的Button时,main将打开并执行,然后将值(mark)发送到Board活动
有效。
但我还想从Board Activity向主Activity发送3个数组,作为变量,根据哪个Button点击(我在Board活动中有3个按钮,每个数组用于Button)。
这是我在Board活动中使用的功能:
public void getMessage(View V) {
// Create The Intent and Start The Activity to get The message
Intent intentGetMessage = new Intent(this, MainActivity.class);
startActivityForResult(intentGetMessage, 2);// Activity is started with requestCode 2
}
// Call Back method to get the Message form other Activity override the method
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
// check if the request code is same as what is passed here it is 2
if (requestCode == 2) {
// fetch the message String
String message = data.getStringExtra("MESSAGE");
// Set the message string in textView
mm.setText(message);
这是主Activity中的提交函数:
public void submitMessage(View V) {
String message = String.valueOf(mark);
Intent intentMessage = new Intent();
// put the message to return as result in Intent
intentMessage.putExtra("MESSAGE", message);
// Set The Result in Intent
setResult(2, intentMessage);
// finish The activity
finish();
}
答案 0 :(得分:0)
最简单的方法是使用 singleton,,它只是一个实例存在的类。最简单的方法是定义一个包含三个静态数组的类,使用公共(静态)访问器。然后,您可以从任一活动引用此类,从一个放置数组并从另一个读取它们。例如,
public class SampleSingleton {
private static String[] _array1;
private static Integer[] _array2;
private static boolean[] _array3;
public static String[] get_array1() {
return _array1;
}
public static void set_array1(String[] _array1) {
SampleSingleton._array1 = _array1;
}
public static Integer[] get_array2() {
return _array2;
}
public static void set_array2(Integer[] _array2) {
SampleSingleton._array2 = _array2;
}
public static boolean[] get_array3() {
return _array3;
}
public static void set_array3(boolean[] _array3) {
SampleSingleton._array3 = _array3;
}
}
还有其他更优雅,更复杂的方法,the answers to this question给出了一些指示,但作为一种快速而简单的方法,这样做。