Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将捆绑包发送到主/启动器活动之前';是什么创造的?_Java_Android_Android Intent_Android Activity - Fatal编程技术网

Java 将捆绑包发送到主/启动器活动之前';是什么创造的?

Java 将捆绑包发送到主/启动器活动之前';是什么创造的?,java,android,android-intent,android-activity,Java,Android,Android Intent,Android Activity,捆绑包可以轻松地传递给新活动,目的是: Intent intent = new Intent(this, DisplayMessageActivity.class); Bundle b = new Bundle(); // add extras... intent.putExtras(b); startActivity(intent); 是否可以使用捆绑包(或类似工具)向主活动发送数据 应用程序类是在任何活动中创建的,我想用它向主活动发送数据。我不希望全局访问数据,也不希望在主活动上使用静态方

捆绑包可以轻松地传递给新活动,目的是:

Intent intent = new Intent(this, DisplayMessageActivity.class);
Bundle b = new Bundle();
// add extras...
intent.putExtras(b);
startActivity(intent);
是否可以使用捆绑包(或类似工具)向主活动发送数据


应用程序类是在任何活动中创建的,我想用它向主活动发送数据。我不希望全局访问数据,也不希望在主活动上使用静态方法将数据传递给它。

因为您已经拥有应用程序的句柄,所以我只想使用它创建一个应用程序变量-

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">
正如杰夫·吉尔费尔特在这里所解释的:

您是否考虑过暂时使用SharedReferences,然后在创建新活动时删除SharedReferences数据

一些示例代码:

活动1:

SharedPreferences prefs = getSharedPreferences("mydata", 0);
        SharedPreferences.Editor editor = prefs.edit();
        editor.putString("secretstring", "asdasdasdqwerty");
        editor.commit();
活动2:

SharedPreferences prefs = getSharedPreferences("mydata", 0);
String savedString = prefs.getString("secretstring", "");

SharedPreferences prefs = getSharedPreferences("mydata", 0);
            SharedPreferences.Editor editor = prefs.edit();
            editor.putString("secretstring", "nope");
            editor.commit();
第二种可能是对公共变量使用getter和setter,但只通过检查类请求的变量来将正确的变量返回给主类


希望这有帮助:)

这不是我要找的。在任何活动中都可以通过getApplication()通过应用程序访问数据,正如您所说,这基本上是一个全局变量。我不想要全局变量。我想要的数据只适用于主要活动。糟糕,你在原来的帖子中确实有这些数据。我不太确定你想要的是什么。您需要了解,
应用程序
类在每个进程中只创建一次。这意味着,当您第一次启动应用程序时,将创建
应用程序
类,然后创建
main活动
。现在用户按下返回键。您的
main活动将完成。现在,用户再次启动应用程序。如果进程没有被回收(终止),那么Android将创建并启动一个新的
MainActivity
实例。它不会再次调用
应用程序
类上的
onCreate()
SharedPreferences prefs = getSharedPreferences("mydata", 0);
String savedString = prefs.getString("secretstring", "");

SharedPreferences prefs = getSharedPreferences("mydata", 0);
            SharedPreferences.Editor editor = prefs.edit();
            editor.putString("secretstring", "nope");
            editor.commit();