我的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中的字符串,我该怎么做呢?
答案 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);
}
假设myMethod
将String
作为参数。
在继续使用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;
}