Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.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
Java 按钮setOnClickListener导致应用程序崩溃_Java_Android_Xml_Button - Fatal编程技术网

Java 按钮setOnClickListener导致应用程序崩溃

Java 按钮setOnClickListener导致应用程序崩溃,java,android,xml,button,Java,Android,Xml,Button,所以我有两个XML布局文件。 一个是菜单,另一个是应用程序。 现在,我在一个XML文件上有一些按钮,在另一个文件上有一些其他按钮 因此,该代码起作用: setContentView(R.layout.main); start = (Button) findViewById(R.id.button1); start.setOnClickListener(this); 但如果我改变观点并写下以下内容: setContentView(R.layout.random)

所以我有两个XML布局文件。
一个是菜单,另一个是应用程序。
现在,我在一个XML文件上有一些按钮,在另一个文件上有一些其他按钮

因此,该代码起作用:

    setContentView(R.layout.main);
    start = (Button) findViewById(R.id.button1);

    start.setOnClickListener(this);
但如果我改变观点并写下以下内容:

    setContentView(R.layout.random);
    add_person = (Button) findViewById(R.id.add);

    add_person.setOnClickListener(this); //crash here

应用程序崩溃了

add\u person
为空,因此获取Nullpointer异常,并且您在random.xml中有一个按钮,该按钮具有add as id

如果没有,则添加

<Button android:id="@+id/add" ... />

add\u person
为空,因此获取空指针异常,并且您在random.xml中有一个按钮,该按钮具有add as id

如果没有,则添加

<Button android:id="@+id/add" ... />

从project->Clean中清除当前项目后重试

或者你可以使用

(Button)random.findViewById(R.id.add);
而不是

(Button) findViewById(R.id.add);

从project->Clean清除当前项目后重试

或者你可以使用

(Button)random.findViewById(R.id.add);
而不是

(Button) findViewById(R.id.add);

您应该将该类实现为
onClickListner
,如下所示:

public class <ClassName> extends Activity implements OnClickListener{

    public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

            setContentView(R.layout.main);
            start = (Button) findViewById(R.id.button1);
            start.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
           switch (v.getId()) {
               case R.id.button1:
                   //Hear Yor Logic on Click Event.
                   break;       
           }        
    }
}
public类扩展活动实现OnClickListener{
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
开始=(按钮)findViewById(R.id.button1);
start.setOnClickListener(this);
}
@凌驾
公共void onClick(视图v){
开关(v.getId()){
案例R.id.button1:
//听到你的逻辑点击事件。
打破
}        
}
}

您应该将该类实现为
onClickListner
,如下所示:

public class <ClassName> extends Activity implements OnClickListener{

    public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

            setContentView(R.layout.main);
            start = (Button) findViewById(R.id.button1);
            start.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
           switch (v.getId()) {
               case R.id.button1:
                   //Hear Yor Logic on Click Event.
                   break;       
           }        
    }
}
public类扩展活动实现OnClickListener{
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
开始=(按钮)findViewById(R.id.button1);
start.setOnClickListener(this);
}
@凌驾
公共void onClick(视图v){
开关(v.getId()){
案例R.id.button1:
//听到你的逻辑点击事件。
打破
}        
}
}

当然可以。xml是由eclipse使用gui生成器创建的。将按钮的id更改为addinXML,然后单击methodsry…xml中的id为add。你是说这行吗?tart=(按钮)findViewById(R.id.button1);这行代码行。@Dennisnote实际上,dennis id为add的按钮必须在xml文件中。这是崩溃日志:当然。xml是由eclipse使用gui生成器创建的。将按钮的id更改为addinXML,然后单击methodsry…xml中的id为add。你是说这行吗?tart=(按钮)findViewById(R.id.button1);这行代码行。@Dennisnote实际上dennis带有id add的按钮必须在xml文件中。这是崩溃日志:是的,我在注释中上传了xml。所以另一个按钮也不起作用。它在xml和java类中也有正确的id是的,我在评论中上传了xml。所以另一个按钮也不起作用。它在xml和java类中也有正确的id