我创建了一个小项目,点击按钮后文本会发生变化。但是我遇到了一些问题:
我的xml文件代码是
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Greetings appear here..."
android:id="@+id/greetings_text_view"
/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Show Greetings"
android:layout_below="@id/greetings_text_view"
android:onClick="showGreetings"/>
我的java代码是
TextView textview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); //connects java file with xml layout
textview = (TextView).findViewById(R.id.greetings_text_view);
}
public void showGreetings ( View view) //creates method, view is argument
{
String message="Welcome to first app";
textview.setText(message);
}
当我运行代码时,我收到此错误:
Error:(20, 20) error: illegal start of type
Error:(20, 30) error: non-static method findViewById(int) cannot be referenced from a static context
Error:(20, 43) error: incompatible types: View cannot be converted to TextView
有谁能告诉我哪里出错了?
答案 0 :(得分:2)
这是一个小问题(看起来无意)。执行base.html
时,编译器认为您正在尝试调用类(TextView).findViewById(R.id.greetings_text_view)
的静态函数findViewById
,这就是它抱怨的原因
替换
TextView
由此
textview = (TextView).findViewById(R.id.greetings_text_view);