Android if if语句在onItemClickListener中不起作用

时间:2012-04-27 22:46:44

标签: android listview if-statement onclick

我有一个列表视图,显示我从我的网站获得的值(名称),然后使用onItemClickListener在Web视图中加载与该名称对应的url链接,这样可以正常工作!但是当我添加一个if语句时它不会读它,有人能告诉我我做错了什么吗?

这是代码

private AdapterView.OnItemClickListener onPeriodicosListClick = new  AdapterView.OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View view, int position,
            long id) {
        cambio="";
        pUrl="";
        noteId = arrayOfWebData.get(position);
        cambio  = noteId.Medio.toString();
        PeriodicosListLayout.setVisibility(View.GONE);
        webLayout.setVisibility(View.VISIBLE);      
        pUrl = noteId.website.toString();
        wvp.loadUrl(pUrl);

        if ( cambio == "Periodico"){
            Toast.makeText(getApplicationContext(),
                    cambio,
                    Toast.LENGTH_LONG).show();
        }
        if ( cambio == "Tv"){
            Toast.makeText(getApplicationContext(),
                    cambio,
                    Toast.LENGTH_LONG).show();
        }

    }
};

(cambio = noteId.Medio.toString();)只能是Periodico,Radio,Tv(因为我已经将它的值设置为这3个字中的任何一个)所以我想要的只是一个显示它是什么!

4 个答案:

答案 0 :(得分:3)

不应该是

if(cambio == "Periodico")

但是

if(cambio.equals("Periodico"))

答案 1 :(得分:2)

不确定,但如果cambio是String对象,则if语句应为

if(cambio.equals("Periodico") {
...

答案 2 :(得分:1)

==运算符检查两个对象是否引用内存中的相同空间(而不是字符串的内容)。字符串是对象,这意味着==运算符不进行内容检查,而是进行引用检查。使用实例compareTo(String anotherString)equals(Object)方法比较字符串的内容,即:

if (cambio.compareTo("Periodico") == 0) { /* match */ }
if (cambio.compareTo("Tv") == 0){ /* match */ }

如果情况无关紧要,还有compareToIgnoreCase(String string)equalsIgnoreCase(Object)变体。

答案 3 :(得分:0)

您是否尝试使用switch语句而不是if?如果您使用

将cambio输出到logCat,您还能得到什么?
Log.d(TAG, "cambio: " + cambio);

最后一件事。你用什么来将List连接到你的活动?一个simpleAdapter,baseAdapter,..?