-1

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

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

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

但是,当我单击 it(textview) 时,它并没有让我想到下一个意图。事实上,它给了我“其他”代码。

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

我不知道我的代码有什么问题,它只是无法显示“IF”部分。有人能帮我吗?先感谢您

这是我的源代码的一部分:

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();
    }
}



}
4

3 回答 3

2

从这里很难说什么,但这些是我的建议:

1) 使用正确的 Java 命名约定。如果KEY_LATITUDE并且KEY_LONGITUDE不是常量,那么您不应该将它们全部大写。如果它们是常数,那么将它们与某物进行比较似乎毫无意义。

2)KEY_LATITUDE并且KEY_LONGITUDE不能是那些值。您需要调试并找出它们的值。为此,请尝试这样的 Log 语句:

Log.d("coords", "lat: " + KEY_LATITUDE + " long: " + KEY_LONGITUDE);

看看这些值实际上是什么。使用 LogCat 搜索coords标签。由此,您可以查看是否得到了您期望的正确比较。

编辑:我注意到另一件事。你在呼唤toString()你的KEY_LATITUDE价值观KEY_LONGITUDE。他们还不是字符串吗? .equals()比较对象的相等性。在您的情况下,您可能需要尝试这样做:

if(KEY_LATITUDE.toString().equals("1.2960994") && KEY_LONGITUDE.toString().equals("103.848237"))
于 2013-08-13T13:54:26.700 回答
0

我认为您的问题是 KEY_LATITUDE 和 KEY_LONGITUDE 没有在我所看到的 onClick 方法中定义。这可能会导致问题,因为如果我没记错的话,OnClickListener 是一个匿名内部类,因此不能使用任何变量(除了超类的类变量)。即使不是这种情况,您也应该有代码直接获取 onClick 提供给您的视图“v”的位置,因为这是您单击的视图,并且据我所知,这是您唯一关心的视图。您可以尝试在创建 TextView 时将坐标存储在标签中(例如tv.setTag([latCoord, longCoord])),然后在 onClick 方法中通过v.getTag().

于 2013-08-13T14:09:57.077 回答
0

尝试更换

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

if(KEY_LATITUDE.toString().equals("1.2960994") && KEY_LONGITUDE.toString().equals("103.848237"))
于 2013-08-13T14:08:10.927 回答