Android OnClick方法无法使用if-else语句正确运行

Android OnClick方法无法使用if-else语句正确运行,android,onclick,textview,Android,Onclick,Textview,我的代码中有一个if-else语句 假设,如果我用(lat(“1.2960994”)和lng(“103.848237”)单击Textview,它将带我进入下一个意图,即map.class if(KEY_LATITUDE.equals("1.2960994") && KEY_LONGITUDE.equals("103.848237")) 然而,当我点击它(textview)时,它并没有带我进入下一个意图。事实上,它给了我“else”代码 我不知道我的代码有什么问题,它只是不能显示

我的代码中有一个if-else语句

假设,如果我用(lat(“1.2960994”)和lng(“103.848237”)单击Textview,它将带我进入下一个意图,即map.class

if(KEY_LATITUDE.equals("1.2960994") && KEY_LONGITUDE.equals("103.848237"))
然而,当我点击它(textview)时,它并没有带我进入下一个意图。事实上,它给了我“else”代码

我不知道我的代码有什么问题,它只是不能显示“如果”部分。 有人能帮我吗? 先谢谢你

这是我源代码的一部分:

public void onClick(View v) {

         //TODO Auto-generated method stub



    if(KEY_LATITUDE.equals("1.2960994") && KEY_LONGITUDE.equals("103.848237")){

    Intent intent = new Intent(SingleMenuItemActivity.this,map.class);
    intent.putExtra("MAP",KEY_LATITUDE.toString());
    intent.putExtra("MAP",KEY_LONGITUDE.toString());
    startActivity(intent);
        //startActivity(new Intent(SingleMenuItemActivity.this,
            //  map.class));

    /*Intent n = new Intent(MainActivity.this,map.class); 
    n.putExtra("lat",latitude.get(position).toString()); 
    n.putExtra("lng",longitude.get(position).toString());
    startActivity(n); */

    }
    else
    {
        //startActivity(new Intent(SingleMenuItemActivity.this,
            //map.class));


        Toast.makeText(SingleMenuItemActivity.this, "Invalid MAP", Toast.LENGTH_LONG).show();
    }
}



}

从这里很难看出什么,但以下是我的建议:

1) 使用适当的Java命名约定。如果
KEY\u LATITUDE
KEY\u LONGITUDE
不是常量,则不应将它们全部设为大写。如果它们是常量,那么将它们与其他东西进行比较似乎是毫无意义的

2)
KEY\u纬度
KEY\u经度
不得为这些值。您需要调试并找出它们是什么值。要执行此操作,请尝试以下日志语句:

Log.d(“坐标”,“纬度:+KEY\u纬度+”长:+KEY\u经度)

查看实际值是什么。使用LogCat搜索
coords
标记。从中,您可以看到您是否得到了预期的正确比较

编辑:我注意到另一件事。您正在对
KEY\u LATITUDE
KEY\u LONGITUDE
值调用
toString()
。它们不是已经有字符串了吗
.equals()
比较对象的相等性。在您的情况下,您可能需要尝试以下方法:

if(KEY_LATITUDE.toString().equals("1.2960994") && KEY_LONGITUDE.toString().equals("103.848237"))
试着替换

 if(KEY_LATITUDE.equals("1.2960994") && KEY_LONGITUDE.equals("103.848237"))


我认为您的问题在于,我所看到的onClick方法中没有定义KEY_纬度和KEY_经度。这可能会导致一个问题,因为OnClickListener是一个匿名的内部类,所以不能使用任何变量(超类的类变量除外)。即使不是这样,您也应该有代码直接获取视图“v”的位置,因为就我所知,这是您单击的视图,也是您唯一关心的视图。您可以尝试在创建TextView时将坐标存储在标记中(如
tv.setTag([latCoord,longCoord])
),然后通过
v.getTag()

在onClick方法中访问它。您是否检查了这两个值以确保它们都是真的,
键纬度等于(“1.2960994”)
键经度等于(“103.848237”
?是
钥匙纬度
钥匙经度
字符串
s?钥匙经度和钥匙经度是什么类型?你能记录这些钥匙的实际值并发布它们吗?@codeMagic两者都是true@StefanBeike它们是漂浮的,但我宣布它们为弦这是它传递出来的08-1409:15:10.280:D/pluum_53500(23834):从网络获取坐标=(1.3800584103.8452073)为:Null我的意思是,我更改了代码,数字..忘了提及that@randomize您已经解决了这个问题吗?为什么要将lat/long值转换为字符串对象,而不仅仅是比较它们的原始形式?
 if(KEY_LATITUDE.equals("1.2960994") && KEY_LONGITUDE.equals("103.848237"))
if(KEY_LATITUDE.toString().equals("1.2960994") && KEY_LONGITUDE.toString().equals("103.848237"))