If statement 在android中显示基于edittext中内容的元素
我是android的新手。如果我问了一些愚蠢的问题,请原谅我 我想根据用户在EditText元素中的输入显示/隐藏元素(TextView) 基本上有3个文本视图。根据在edittext中输入的内容,只应显示其中一个(在本例中,如果在edittext中输入了mometasone,则应显示id为StrongText的textview,其他应隐藏) 下面是我正在使用的代码模式If statement 在android中显示基于edittext中内容的元素,if-statement,android-edittext,textview,class-visibility,android,If Statement,Android Edittext,Textview,Class Visibility,Android,我是android的新手。如果我问了一些愚蠢的问题,请原谅我 我想根据用户在EditText元素中的输入显示/隐藏元素(TextView) 基本上有3个文本视图。根据在edittext中输入的内容,只应显示其中一个(在本例中,如果在edittext中输入了mometasone,则应显示id为StrongText的textview,其他应隐藏) 下面是我正在使用的代码模式 protected void onCreate(Bundle savedInstanceState) { super
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);
}
现在,当我运行这个时,显然“else”语句只起作用,这意味着应该由它可见的“nosteroid”文本是可见的。但是当输入mometasone时,什么也不会发生(表示if语句不起作用)
我做错了什么?请指导我。OnCreate()方法仅在第一次创建视图时调用,而不是每次在编辑文本中更改文本时调用。首先研究android活动生命周期
您可以通过向或注册您的编辑文本来实现
并意识到:
else
statement 1;
statement 2;
等于
else {
statement 1;
}
statement 2;