如何在Android中获取非活动类的Intent值

时间:2017-09-03 03:06:31

标签: java android android-intent

我是Android新手。我有一个扩展Activity的基类Activity类(MainActivity.java)。所以我可以在这里初始化Intent。 MainActivity.java

Intent myIntent = new Intent(MainActivity.this, ConnectionClass.class);
myIntent.putExtra("ServerName", ServerName);
startActivityForResult(myIntent, 1);

在connectionClass.java中,我有一个不继承的类ConnectionClass。但我想访问MainActivity.java中的值。所以本课程没有继承Activity& onCreate方法。但我需要访问MainActivity.java中的值到ConnectioClass.java

ConnectionClass.Java

public class ConnectionClass {
    Bundle bundle = getIntent().getExtras();
        String ServerName = bundle.getString("ServerName");
}

我该怎么做?

2 个答案:

答案 0 :(得分:0)

我不知道" ServerName"是固定值,或每次都有变化,或者它有一种值池。如果是第一个或第三个案例,我建议您使用SharedPreferences。它是一个相对较小的键值数据存储。您可以将数据保存在其中,一旦存储,它将永久存储在您的应用中,除非删除。因此,您可以在MainActivity中保存数据,并在任何地方获取类中的值。

您可以在此处找到教程:https://developer.android.com/training/basics/data-storage/shared-preferences.html

答案 1 :(得分:0)

当你在活动中从ConnectionClass实例化一个新对象时,可以将servername传递给类,如下所示

public class ConnectionClass {
String serverName;
public ConnectionClass(String serverName){
this.serverName=serverName;
} 
}

然后在你的活动中你有类似的东西:

Bundle bundle = getIntent().getExtras();
String ServerName = bundle.getString("ServerName");
ConnectionClass connection=new ConnectionClass(ServerName);