If statement 在android中显示基于edittext中内容的元素

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

我是android的新手。如果我问了一些愚蠢的问题,请原谅我

我想根据用户在EditText元素中的输入显示/隐藏元素(TextView)

基本上有3个文本视图。根据在edittext中输入的内容,只应显示其中一个(在本例中,如果在edittext中输入了mometasone,则应显示id为StrongText的textview,其他应隐藏)

下面是我正在使用的代码模式

 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;