如何进入第二个活动但是将数据发送到另一个活动?

时间:2017-03-27 12:46:09

标签: java android

我做了一个申请" Quiz",它有4个活动。主活动将带有您姓名的String从EditText发送到带有第一个问题的活动。我在这里遇到问题,因为我不知道如何将此字符串立即发送到主要活动的最终活动,但不会进行最终活动。我想从主要活动的第一个问题转到活动,然后转到第二个问题的活动,最后我想去最后的活动。 谢谢你的帮助!

4 个答案:

答案 0 :(得分:0)

您可以使用静态字段传递数据。

FinalActivity class内,您可以添加以下变量:

private static String NAME = "";

使用以下getter和setter:

public static String getName(){
    return NAME;
}

public static void setName(String name){
   NAME = name;
}

答案 1 :(得分:0)

您可以在Application类中使用getter setter,这样您就可以从任何地方获取字符串数据。这不是唯一的方法,但我认为这也是一种简单的方法。

  public class MyApplication extends Application {

  private String someVariable;

  public String getSomeVariable() {
    return someVariable;
  }

 public void setSomeVariable(String someVariable) {
    this.someVariable = someVariable;
 }
}

在清单

中添加此内容
<application 
  android:name=".MyApplication" 
  android:icon="@drawable/icon" 
  android:label="@string/app_name">
在您的活动中,您可以获取并设置变量:

 / set
((MyApplication) this.getApplication()).setSomeVariable("foo");

// get
String s = ((MyApplication) this.getApplication()).getSomeVariable();

可能对您有所帮助的一些网址Android global variable

您也可以使用共享偏好,但根据我们的要求,我不建议您

Android Shared preferences example

答案 2 :(得分:0)

您可以根据自己的要求使用Broadcast Receiver。在您要从中发送数据的活动中,请执行以下操作:

Intent intent = new Intent();
intent.setAction("fourthactivity");
sendBroadcast(intent);

在第四项活动中,制作一个broadcast receiver来接收你的意图:

public class IncomingReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals("fourthactivity")) {
            System.out.println("GOT THE INTENT");
        }
    }
}

告诉我这是否有效,如果适合你,请点击右键。

答案 3 :(得分:0)

您可以使用SharedPreference存储从一个活动到另一个活动的答案,然后比较FinalActivity中的所有答案,从而减少复杂的编码,您将获得所需的结果。