如何在onCreate方法之外使用String

时间:2015-04-02 16:23:55

标签: string methods

我的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);

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

4 个答案:

答案 0 :(得分:3)

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

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

假设myMethodString作为参数。

在继续使用Android之前,我还建议您read the java docs和一些基本教程。它会让你的生活更轻松。

答案 1 :(得分:3)

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

private String appleMessage;

然后,在你的onCreate里面,只需改变这一行:

appleMessage = appleData.getString("appleMessage");

如果要在其他方法上使用它,只需调用它即可。它的值将是onCreated方法设置的值。

答案 2 :(得分:2)

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

有关实例/成员变量的更多信息,请参阅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);
    }
}

答案 3 :(得分:1)

在你的类中声明它而在方法中没有。

e.g。

private String appleMessage;

并为其使用getter和setter

public String getAppleMessage(){
 return appleMessage;
}