gpt4 book ai didi

Android资源作为主 Activity 中的成员变量

转载 作者:行者123 更新时间:2023-11-30 04:20:27 26 4
gpt4 key购买 nike

使用 android hello world,接下来我将一些字符串添加到 strings.xml 资源文件中。然后我尝试将我的主要 Activity 类的成员变量设置为其中一个字符串的值:

public class MyActivity extends Activity {
/** Called when the activity is first created. */
public String myString = getString(R.string.MY_STRING); // compiles, but crashes

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
tv.setText(myString);
setContentView(tv);
}
}

当它崩溃时,我在 logcat 中得到这个:无法实例化 Activity ComponentInfo{com.myclass}: java.lang.NullPointerException

那么,我是做错了,还是这是预期的行为?查看文档,我看不出有什么可以让我认为在构建主要 Activity 时资源不可用。

http://developer.android.com/guide/topics/resources/accessing-resources.html

但是,我很确定这在其他类(class)中也适用——只是不适用于主要 Activity 类(class)。

最佳答案

我认为您不能在 Activity 类上调用 getString,因为它可能尚未正确初始化。您可能需要拆分声明(将其保留为公共(public)字符串)和分配(将其移至 onCreate)。

public class MyActivity extends Activity {
/** Called when the activity is first created. */
public String myString;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
myString = getString(R.string.MY_STRING); // compiles, but crashes
TextView tv = new TextView(this);
tv.setText(myString);
setContentView(tv);
}
}

关于Android资源作为主 Activity 中的成员变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9332429/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com