我是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”语句......请告诉我是否有更好的方法来完成任务......
提前致谢。 等待回复....
答案 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);}
}