Показать элемент, основанный на том, что в тексте редактирования в Android
Я новичок в Android. Пожалуйста, прости меня, если я спрашиваю что-нибудь глупое.
Я хочу показать / скрыть элемент (TextView) на основе пользовательского ввода в элементе EditText.
В основном есть 3 textview . На основании того, что вводится в тексте редактирования, должен отображаться только один из них (в этом примере, если в тексте редактирования введен мометазон, текстовое представление с идентификатором strongsteroidtext должно отображаться, а другие должны скрываться)
Вот образец кода, который я использую.
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
EditText creamname = (EditText) findViewById(R.id.creamname);
TextView nosteroid = (TextView) findViewById(R.id.nosteroidtext);
TextView weaksteroid = (TextView) findViewById(R.id.weaksteroidtext);
TextView strongsteroid = (TextView) findViewById(R.id.strongsteroidtext);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
final String cream = (creamname.getText().toString().trim());
weaksteroidlist = R.string.weaksteroidlist;
{if (cream.equals("beclomethasone")) {
weaksteroid.setVisibility(View.VISIBLE);
nosteroid.setVisibility(View.INVISIBLE);
}
if (cream.equals("mometasone")) {
strongsteroid.setVisibility(View.VISIBLE);
nosteroid.setVisibility(View.INVISIBLE);
} else weaksteroid.setVisibility(View.INVISIBLE);
strongsteroid.setVisibility(View.INVISIBLE);
nosteroid.setVisibility(View.VISIBLE);
}
Теперь, когда я запускаю это, очевидно, что "другое" утверждение только работает, что означает, что "ностероидный" текст, который должен быть виден этим, является видимым. Но когда вводится мометазон, ничего не происходит (означает, что оператор if не работает).
Что я делаю не так? пожалуйста, направь меня.
1 ответ
Метод OnCreate() вызывается только при первом создании представления, а не каждый раз, когда текст изменяется в вашем EditText. Изучите жизненный цикл андроидной активности в первую очередь.
То, что вы хотите, может быть достигнуто путем регистрации вашего editText с помощью onKeyListener или onTextChangeListener
И осознаю это:
else
statement 1;
statement 2;
Равно
else {
statement 1;
}
statement 2;