我不知道为什么这段代码会抛出nullPointerException。我没有写这部分代码,而且我对这个工作人员很新。我尽我所能但无法找到答案。
public class ProgramExamActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
setTitle("Screen #1");
}
public void onClick(View v) {
switch(v.getId()) {
case R.id.btn2:
setContentView(R.layout.screen2);
setTitle("Screen #2");
break;
}
}
答案 0 :(得分:2)
首先,这个
setContentView(R.layout.screen2);
setTitle("Screen #2");
你做不到,你不应该多次打电话。
如果您想使用OnClickListener
,则需要注明widget
,并且在代码中注明widget
。
如果您不想使用 Listeners 作为匿名类
,那么您的课程需要实施View.OnClickListener
public class Program... extends Activity implements View.OnClickListener { ... }
然后你需要像这样注册:
Button btn = (Button) findViewById(R.id.btn2);
btn.setOnClickListener(this);
注意:如果您想要使用不同的标题和内容开始另一个Activity
,则必须使用Intents
并致电startActivity()
。
有关Intents的更多信息,还有教程Android: How to switch between Activities。
答案 1 :(得分:0)
将Click事件的侦听器添加为
public class ProgramExamActivity extends Activity implements OnClickListener{
然后,使用此侦听器注册您的组件。 假设您想要点击任何按钮,例如btn1。 然后在OnCreate中添加代码
btn1.setOnClickListener(ProgramExamActivity.this);