Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
预先编写的android代码引发nullPointerException_Android_Nullpointerexception - Fatal编程技术网

预先编写的android代码引发nullPointerException

预先编写的android代码引发nullPointerException,android,nullpointerexception,Android,Nullpointerexception,我不知道为什么这段代码会抛出nullPointerException。这部分代码不是我写的,我对这里的工作人员很陌生。我尽了最大努力,但找不到答案 public class ProgramExamActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCr

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

setContentView(R.layout.screen2);
setTitle("Screen #2");
你不能,你不应该叫这个不止一次

第二,如果你想使用
OnClickListener
,你需要为一些
小部件
注册它,并且在你的代码中有任何
小部件

在您的情况下,如果您不想将侦听器作为匿名类使用,您的类需要实现
View.OnClickListener

public class Program... extends Activity implements View.OnClickListener { ... }
然后您需要像这样注册它:

Button btn = (Button) findViewById(R.id.btn2);
btn.setOnClickListener(this);
注意:如果您想开始另一个标题和内容不同的
活动
,您必须使用
意图
并调用
startActivity()


更多关于和教程。

将click事件的侦听器添加为

public class ProgramExamActivity extends Activity implements OnClickListener{
然后,向该侦听器注册组件。 假设你想添加点击你的任何一个按钮,比如btn1。 然后在OnCreate中添加代码

btn1.setOnClickListener(ProgramExamActivity.this);

发布异常日志。。关于你的问题。日志可能对帮助者更有帮助:)虽然代码写得不好,但有一些事情应该避免。也许这是个愚蠢的问题,但我在eclipse中哪里可以找到日志?@Enoras>>是的,写得很好,我想在这里再强调一点,因为欺骗者建议不要设置contentView两次。实际上,您应该启动一个新的活动,而不是设置新的内容视图。并在新活动中显示您的布局。感谢您的快速回答和教程链接。我试图注册,但它说它有错误的代币。我将再次阅读所有教程,因为我感觉你在浪费时间。8分钟之前已经给出了相同的答案,你不应该发布重复的答案,如果你的答案中没有新的和独特的内容,请避免发布。好的,我标记并投票支持“骗子”的答案。我没有读完整的答案是我的错误。