У меня есть два вида деятельности; первая активность начинает вторую, а некоторые данные передаются через намерение.Создание TextView видимо во время выполнения в java (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, поэтому это должно быть проблемой. Хотя правильно использовать именованные константы вместо магических чисел. Сравнение объектов string с == - проблема здесь. – Michal
Вы можете взглянуть на это сообщение о сравнении строк: http://stackoverflow.com/questions/767372/java-string-equals-versus – Giacomoni