我正在编写我的第一个 Android 应用程序,但遇到了一些麻烦。考虑以下代码:
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState{
super.onCreate(savedInstanceState);
TextView textView;
textView = new TextView(this);
textView.setTextSize(40);
//textView.setText("TEST");
setContentView(textView);
}
只要 setText
行保持注释状态,此代码就会编译。如果我取消注释,我会收到以下错误:无法找到符号:变量textView
我在这里做了明显错误的事情吗?我是 android 新手,自从我编写 java 以来已经很多年了(我写了很多 C 语言,我的直觉往往会让我误入歧途......)
编辑:
该函数是此处示例代码的简化: http://developer.android.com/training/basics/firstapp/starting-activity.html
这个例子有错吗?看起来我不应该在 list 中创建如此简单的 View ,这对我来说看起来像是一个 java 链接器错误?感谢您的回复,但我仍然无法理解出了什么问题。
最佳答案
一些你出错的地方:
-您应该在尝试引用任何 View 之前调用setContentView()
-setContentView()
获取包含布局的 XML 文件的名称
-您需要在 JAva 代码中使用 findViewById
@Override
protected void onCreate(Bundle savedInstanceState{
super.onCreate(savedInstanceState);
setContentView(R.layout.name_of_your_xml_file_which_has_the_layout);
TextView textView;
textView = (TextView)findViewById(R.id.id_of_the_textView_as_given_in_your_layout.xml);
textView.setTextSize(40);
textView.setText("TEST");
}
编辑: 给出的代码here动态创建一个 TextView ,我的答案包含的方法使用静态布局,仅引用 java 代码中的 textView 。这是执行此操作的标准方法,因为一旦事情变得复杂,实现动态布局就变得非常困难。现在,事情看起来很简单,因为只有一个 TextView。但是,随着 UI 元素的增多,您只会带来更多麻烦(在我看来)。我建议您遵循静态布局方法,特别是因为您刚开始使用 Android。
关于Java在实现Android Activity时找不到符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15729354/