1

我是 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”语句......请告诉我是否有更好的完成任务的方法...

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

4

2 回答 2

4

在 Java 中,您使用equals()and not比较字符串==

if(item.equals("ListView_Item1"))

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

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

于 2013-07-25T11:36:33.313 回答
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);}
    }
于 2013-07-25T11:43:38.937 回答