2017-03-27 34 views
-4

我提出的申请“测验”,其中有4个活动。主要活动将一个字符串与您的姓名从EditText发送到第一个问题的活动。我在这里遇到问题,因为我不知道如何立即将此字符串发送到主要活动的最终活动,但无需进行最终活动。我想从主要活动的第一个问题开始,然后到第二个问题的活动,最后我想去最后的活动。 感谢您的帮助!我怎样才能去第二个活动,但发送数据到另一个活动?

+1

如果您的活动按顺序进行,只需将它从活动传递到活动即可将它传递给 – tyczj

+1

查看'SharedPreferences'或使用某种Singleton,如'Application'或'BaseActivity'来存储数据并在之后阅读。 – redead

+0

可以使用静态变量也只能这样做 – DkThakur

回答

0

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

里面你FinalActivity class你可以添加以下变量:

private static String NAME = ""; 

而且具有以下getter和setter方法:

public static String getName(){ 
    return NAME; 
} 

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

你可以在这里使用的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(); 

某些URL它可以帮助你Android global variable

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

Android Shared preferences example

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

告诉我,这不工作或点击右键如果它适合你。

0

您可以使用SharedPreference存储的答案,你从一个活动去其他后来所有的答案在FinalActivity以这种方式比较不太复杂的编码,你会实现你想要的结果。

相关问题