同时发送和接收活动

时间:2015-11-19 12:53:43

标签: android android-intent

我有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();

    }

1 个答案:

答案 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给出了一些指示,但作为一种快速而简单的方法,这样做。