所以我试图创建一个将一些值传递给另一个活动的活动,然后根据这些值选择几种不同布局中的一种。
我知道值传递得很好,但它不会显示布局(或任何布局,它只是停留在前一个屏幕上)。我的代码是:
public class ContactDisplay extends GetContact {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle extras = getIntent().getExtras();
String nameChosen = extras.getString("nameSpinner");
String addressChosen = extras.getString("addressSpinner");
if((nameChosen == "Michael") && (addressChosen == "Michaels Address")){
setContentView(R.layout.contact1_layout);
}
}
}
到目前为止,我只使用其中一个布局设置它,但如果选择了Michael和Michaels地址,它应该可以工作。有谁知道我哪里出错了?
答案 0 :(得分:3)
请改用此代码:
if((transportItemChosen.equals("Michael")) && (locationItemChosen.equals("Michaels Address"))){
setContentView(R.layout.contact1_layout);
}
在Java中,您希望在比较字符串而不是==运算符时使用equals()函数。
答案 1 :(得分:0)
首先想到的是,我会尝试不使用硬编码值来添加额外内容,因为你可能会拼错而且很容易卡住...如果不是问题那么请尝试制作一些日志然后看看是什么确切地说,您会在transportItemChosen
和locationItemChosen
编辑:
是的,要比较两个Objects
,您必须使用equals()
方法而不是==运算符。