0

我是安卓新手。如果我问什么愚蠢的问题,请原谅我。

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

基本上有 3 个 textview 。根据在edittext中输入的内容,应该只显示其中一个(在本例中,如果在edittext中输入了mometasone,则应显示id为strongsteroidtext的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”文本是可见的。但是当输入莫米松时,什么也没有发生(意味着 if 语句不起作用)。

我怎么了?请指导我。

4

1 回答 1

0

OnCreate() 方法仅在第一次创建视图时调用,而不是每次编辑文本中的文本更改时调用。先学习android activity 生活圈。

您可以通过使用onKeyListeneronTextChangeListener注册您的 editText 来实现您想要的

并意识到这一点:

else
statement 1;
statement 2;

等于

else {
statement 1;
}
statement 2;
于 2016-02-10T06:34:36.710 回答