我有兩個活動;第一個活動從第二個活動開始,其中一些數據通過意圖傳遞。在java中運行時顯示TextView(Android)
Intent i = new Intent(this,BActivity.class);
i.putExtra("identify", "c2f");
startActivityForResult(i, 1);
在第二個活動,我想作出一些TextViews/EditTexts可見基於從第一個活動傳遞的信息(這是最初設置爲不可見)。
下面的代碼爲:
tv1 = (TextView)findViewById(R.id.textView2);
tv2 = (TextView)findViewById(R.id.textView3);
et1 = (EditText)findViewById(R.id.editText1);
et2 = (EditText)findViewById(R.id.editText2);
button = (Button)findViewById(R.id.send_result);
Bundle extras = getIntent().getExtras();
String identifier = extras.getString("identify");
if(identifier == "c2f")
{
tv1.setVisibility(0);
tv1.setText("Celcius");
et1.setVisibility(0);
}
else if(identifier == "f2c")
{
tv1.setVisibility(0);
tv1.setText("Fahrenheit");
et1.setVisibility(0);
}
else if(identifier == "currency")
{
tv1.setVisibility(0);
tv1.setText("Amount");
tv2.setVisibility(0);
tv2.setText("Conv. Rate");
et1.setVisibility(0);
et2.setVisibility(0);
}
現在第二個活動開始時,所有這些TextViews或EditTexts似乎得到看得見!
標識符(字符串)保存從第一個活動傳遞的正確值,它甚至進入if條件,但它不會使任何視圖可見。
我是否在嘗試使這些視圖可見時出錯?
哇......它的工作原理:你能解釋爲什麼'=='在那裏不起作用嗎? –
TextView.VISIBLE具有常數值= 0,所以這應該不成問題。雖然使用命名常量而不是幻數是正確的。將字符串對象與==比較是一個問題。 – Michal
你可以看看那篇關於字符串比較的文章:http://stackoverflow.com/questions/767372/java-string-equals-versus – Giacomoni