预先编写的android代码抛出nullPointerException

时间:2012-07-07 12:02:44

标签: android nullpointerexception

我不知道为什么这段代码会抛出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;
    }
}

2 个答案:

答案 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);