Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.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/2/linux/25.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 被忽略的条件语句_Java_Eclipse - Fatal编程技术网

Java 被忽略的条件语句

Java 被忽略的条件语句,java,eclipse,Java,Eclipse,签出以下代码段: @Override public void onClick(View v) { // TODO Auto-generated method stub if (v==yes_button) { //Toast.makeText(this, "All records have been deleted!", Toast.LENGTH_LONG).show(); db.open(); db.deleteAll()

签出以下代码段:

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub

    if (v==yes_button) {

        //Toast.makeText(this, "All records have been deleted!", Toast.LENGTH_LONG).show();
        db.open();  
        db.deleteAll();
        db.close();

        Intent intent = new Intent(this, home_screen_activity.class);
        startActivity(intent);  }


        else if (v==no_button){
            Intent intent = new Intent(this, home_screen_activity.class);
            startActivity(intent);  }


}

}
由于某些原因,elseif部分被忽略,代码运行时就好像它不在那里一样,因此即使单击了no按钮,数据库仍然会被删除。我一定错过了一些简单的东西,但我似乎无法确定。有人有什么想法吗


谢谢大家的输入,但我通过重命名no_按钮解决了问题。奇怪

由于
v
是一个对象而不是一个基本类型,因此
=
比较比较内存中的对象位置,而不是测试是否相等。相反,您需要修改测试以使用
.equals
方法:

 if (v.equals(yes_button)) {
     ...
 } else {

 }

另外,如果真的只有两种选择,你可以像我上面所说的那样,省略一个测试,看看按键是否在“否”按钮上。

在android中,我通常通过
R.id.

@Override
public void onClick(View v) {
    int viewID = v.getId();

    if (viewID == R.id.yes_button) {

    } else if (newID == R.id.no_button) {

值得一提的是,使用适当的缩进,并遵循java代码约定。感谢您的反馈。不过,这很奇怪,我在其他活动中使用了完全相同的结构,效果很好。此外,我还以为“equals”方法用于计算字符串?再次感谢,但根据您的建议更改它仍然没有任何作用。但是,我确实通过重命名no按钮使代码正常工作。我不知道为什么它现在可以工作,但它确实可以。为什么不为“是”和“否”按钮使用两个单独的事件处理程序呢?我本来打算这样做的,但是,凭直觉,我重命名了代码段中被忽略的按钮,瞧!它起作用了!:)