如何在 onCreate 方法之外使用字符串

How to use a String outside onCreate method

我的 onCreate 方法中有以下代码:

Bundle appleData = getIntent().getExtras();
    if(appleData==null) {
        return;
    }
    String appleMessage = appleData.getString("appleMessage");

    final TextView texttest = (TextView) findViewById(R.id.texttest);
    texttest.setText(appleMessage);

我想在 onCreate 之外的同一个 activity 上以不同的方法使用存储在 appleMessage 中的字符串,我该怎么做?

在你的 class 中声明它,而不是在方法中。

例如

private String appleMessage;

并为其使用 getter 和 setter

public String getAppleMessage(){
 return appleMessage;
}

如果你在 class 的多个地方需要它,那么你可以通过在方法之外声明它来使它成为一个成员变量

public class SomeClass extends Activity {

    String appleMessage = "default text";

但是如果你只在一个方法中需要它,如果你在 onCreate()

中调用方法,你可以简单地将它传递给方法调用
public void onCreate(Bundle bundle) {
   ...
   String appleMessage = appleData.getString("appleMessage");

   final TextView texttest = (TextView) findViewById(R.id.texttest);
   texttest.setText(appleMessage);

   // here
   myMethod(appleMessage);
}

假设 myMethod 接受一个 String 作为参数。

我还建议您 read the java docs 和一些基础教程,然后再继续 Android。它会让你的生活更轻松。

在class上创建一个成员变量,在onCreate方法中设置。

有关 instance/member 变量的详细信息,请参阅 here

所以:

class SomeClass extends Activity {
    private String appleMessage;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ...
        appleMessage = ...
    }

    public void otherMethod() {
        Log.e("LOG", "Here is appleMessage: " + appleMessage);
    }
}

您应该在 onCreate 方法之外声明一个 String 属性。例如:

private String appleMessage;

然后,在您的 onCreate 中,只需更改此行:

appleMessage = appleData.getString("appleMessage");

当你想在其他方法上使用它时,调用它即可。它的值将是在 onCreated 方法上设置的值。