我是Android编程的新手,以下程序是我的第一个Android应用程序
我的.java
文件
public class MainActivity extends Activity
{
Button btn = (Button) findViewById(R.id.btn);
private OnClickListener btn_click = new OnClickListener() {
public void onClick(View v) {
btn.setText("Hi there!");
}
};
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
btn.setOnClickListener(btn_click);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
我的.XML
档案
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="My Button" />
</RelativeLayout>
我想要一旦点击按钮,My Button
其文本就会变为“嗨,那里!”。但是,当我的应用程序要在模拟器中运行时,它会中断并弹出一条消息:
应用程序testapp_1(进程com.example.testapp_1)意外停止了
我有什么错?以及我该如何解决?
在之后移动您的初始化setContentView
。
Button btn;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(R.id.btn); // initalize button after setContentView
btn.setOnClickListener(btn_click);
}
您需要先将内容设置为活动,然后再初始化视图。您在外部进行了初始化onCreate
。你会得到的NullPointerException
。您可以findViewById
将当前视图层次结构设置为活动。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句