我有一个列表视图,显示我从我的网站获得的值(名称),然后使用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个字中的任何一个)所以我想要的只是一个显示它是什么!
答案 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,..?