在if / else命令下读取字符串值

时间:2013-07-25 11:33:33

标签: java android android-intent

我是android新手,所以我需要一些帮助。 我在我的应用中创建了四个活动。 第一个活动是MainActivity。 我在第一个Activity中分配了一个ListView。 从listView中,您将被重定向到第二个活动,其中包含一个字符串,表示您单击了哪个项目。选择哪个项目并不重要,但您将被重定向到第二个活动。唯一的区别是传递的字符串的值不同。 我在ListView的onItemClick函数中使用了这段代码:

String item  = (String) listView.getAdapter().getItem(position);;
                Intent i = new Intent(MainActivity.this, Activity2.class);
                    i.putExtra("item_selected", item);
                    startActivity(i); 

此代码将我重定向到第二个活动,字符串没有任何问题。 在第二个Activity中,radioButton组中有两个选项“Launch Type 1”和“Launch type 2”以及执行该功能的按钮。 所以我在按钮的onClick方法中使用了这个代码来确定下一个要进行的Activity:

Intent intent = getIntent();
        String item = intent.getExtras().getString("item"); 
        RadioButton launch1 = (RadioButton) findViewById(R.id.launch1);

    //The problem code:..
    if(launch1.isChecked()){
        if(item=="ListView_Item1"){Intent launch1=new Intent(this, Launch_activity1.class); startActivity(launch1);}
    }
    else{
        if(item=="Item 1"){Intent launch2=new Intent(this, Launch_activity2.class); startActivity(launch2);}
    }

在Eclipse中,它表明代码中没有错误。但是当我在模拟器中运行它时,它会很好地启动,直到达到第二个活动。 当我点击按钮时,没有任何操作,也没有重定向到任何新页面...... :( 请帮我构建按钮中的“if / else”语句......请告诉我是否有更好的方法来完成任务......

提前致谢。 等待回复....

2 个答案:

答案 0 :(得分:4)

在Java中,您使用equals()而不是==来比较字符串。

if(item.equals("ListView_Item1"))

使用==您要比较参考而不是内容。

使用Object#equals()检查对象是否包含与另一个对象相同的数据,并==用于比较两个引用是否引用同一对象。

答案 1 :(得分:0)

使用 equals()来比较java中的字符串或对象!

所以您的代码应为:

if(launch1.isChecked()){
        if(item.equals("ListView_Item1")){Intent launch1=new Intent(this, Launch_activity1.class); startActivity(launch1);}
    }
    else{
        if(item.equals("Item 1")){Intent launch2=new Intent(this, Launch_activity2.class); startActivity(launch2);}
    }