如果值是nothing或"",可以将EditText设置为Invisible吗?

问题描述 投票:0回答:2

你好,我正在做一个需要输入答案的问答程序。这是我的第一个应用程序。

我的问题有很多答案。

  final ArrayList<BasicItem> BasicList = new ArrayList<>();
    BasicList.add(new BasicItem("What is the Figurative meaning of [1]Water, [2]Field, [3]Fire", "Word", "Heart", "Word that consume", "", "", "", "", ""));

我事先放了很多字符串,因为有些问题的答案多达8个,而每个答案都有一个EditText。所以就像上面的代码一样,我只在不需要的时候放""。

所以是否可以隐藏不需要的EditText或有""值的EditText?如果可以的话,我应该怎样把它放在哪里?谢谢你的帮助。

还有,我的吐司不能用了

这是我的代码。(问题只是草稿)

    final MediaPlayer mp2 = MediaPlayer.create(this, R.raw.buttonsoundpress2);
    final MediaPlayer mp = MediaPlayer.create(this, R.raw.buttonsoundpress);






    answer1.setOnKeyListener(new View.OnKeyListener() {
        @SuppressLint("ShowToast")
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            Log.e("event.getAction()",event.getAction()+"");
            Log.e("event.keyCode()",keyCode+"");
            if ((event.getAction() == KeyEvent.ACTION_DOWN) &&
                    (keyCode == KeyEvent.KEYCODE_ENTER))
            switch (category) {
                case "Basic":
                    if (answer1.getText().toString().equalsIgnoreCase(BasicList.get(level).getbasicans1())) {
                        Toast.makeText(QuestionActivity.this, "Correct!", Toast.LENGTH_SHORT);
                    } else {
                        Toast.makeText(QuestionActivity.this, "Wrong!", Toast.LENGTH_SHORT);
                    }
                case "Introductory":
                    if (answer1.getText().toString().equalsIgnoreCase(IntroList.get(level).getintroans1())) {
                        Toast.makeText(QuestionActivity.this, "Correct!", Toast.LENGTH_SHORT);
                    } else {
                        Toast.makeText(QuestionActivity.this, "Wrong!", Toast.LENGTH_SHORT);
                    }
                case "Intermediate":
                    if (answer1.getText().toString().equalsIgnoreCase(IntermList.get(level).getintermans1())) {
                        Toast.makeText(QuestionActivity.this, "Correct!", Toast.LENGTH_SHORT);
                    } else {
                        Toast.makeText(QuestionActivity.this, "Wrong!", Toast.LENGTH_SHORT);
                    }
                case "Advanced":
                    if (answer1.getText().toString().equalsIgnoreCase(AdvList.get(level).getadvancedans1())) {
                        Toast.makeText(QuestionActivity.this, "Correct!", Toast.LENGTH_SHORT);

                    } else {
                        Toast.makeText(QuestionActivity.this, "Wrong!", Toast.LENGTH_SHORT);
                    }
                case "Sec1":
                    if (answer1.getText().toString().equalsIgnoreCase(Sec1List.get(level).getsec1ans1())) {
                        Toast.makeText(QuestionActivity.this, "Correct!", Toast.LENGTH_SHORT);
                    } else {
                        Toast.makeText(QuestionActivity.this, "Wrong!", Toast.LENGTH_SHORT);
                    }
                case "Sec2":
                    if (answer1.getText().toString().equalsIgnoreCase(Sec2List.get(level).getsec2ans1())) {
                        Toast.makeText(QuestionActivity.this, "Correct!", Toast.LENGTH_SHORT);
                    } else {
                        Toast.makeText(QuestionActivity.this, "Wrong!", Toast.LENGTH_SHORT);
                    }
                return true;
            }
            return false;
        }
    });

    answer2.setOnKeyListener(new View.OnKeyListener() {
        @SuppressLint("ShowToast")
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            Log.e("event.getAction()",event.getAction()+"");
            Log.e("event.keyCode()",keyCode+"");
            if ((event.getAction() == KeyEvent.ACTION_DOWN) &&
                    (keyCode == KeyEvent.KEYCODE_ENTER))
                switch (category) {
                    case "Basic":
                        if (answer2.getText().toString().equalsIgnoreCase(BasicList.get(level).getbasicans2())) {
                            Toast.makeText(QuestionActivity.this, "Correct!", Toast.LENGTH_SHORT);
                        } else {
                            Toast.makeText(QuestionActivity.this, "Wrong!", Toast.LENGTH_SHORT);
                        }
                    case "Introductory":
                        if (answer2.getText().toString().equalsIgnoreCase(IntroList.get(level).getintroans2())) {
                            Toast.makeText(QuestionActivity.this, "Correct!", Toast.LENGTH_SHORT);
                        } else {
                            Toast.makeText(QuestionActivity.this, "Wrong!", Toast.LENGTH_SHORT);
                        }
                    case "Intermediate":
                        if (answer2.getText().toString().equalsIgnoreCase(IntermList.get(level).getintermans2())) {
                            Toast.makeText(QuestionActivity.this, "Correct!", Toast.LENGTH_SHORT);
                        } else {
                            Toast.makeText(QuestionActivity.this, "Wrong!", Toast.LENGTH_SHORT);
                        }
                    case "Advanced":
                        if (answer2.getText().toString().equalsIgnoreCase(AdvList.get(level).getadvancedans2())) {
                            Toast.makeText(QuestionActivity.this, "Correct!", Toast.LENGTH_SHORT);

                        } else {
                            Toast.makeText(QuestionActivity.this, "Wrong!", Toast.LENGTH_SHORT);
                        }
                    case "Sec1":
                        if (answer2.getText().toString().equalsIgnoreCase(Sec1List.get(level).getsec1ans2())) {
                            Toast.makeText(QuestionActivity.this, "Correct!", Toast.LENGTH_SHORT);
                        } else {
                            Toast.makeText(QuestionActivity.this, "Wrong!", Toast.LENGTH_SHORT);
                        }
                    case "Sec2":
                        if (answer2.getText().toString().equalsIgnoreCase(Sec2List.get(level).getsec2ans2())) {
                            Toast.makeText(QuestionActivity.this, "Correct!", Toast.LENGTH_SHORT);
                        } else {
                            Toast.makeText(QuestionActivity.this, "Wrong!", Toast.LENGTH_SHORT);
                        }
                        return true;
                }
            return false;
        }
    });

    answer3.setOnKeyListener(new View.OnKeyListener() {
        @SuppressLint("ShowToast")
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            Log.e("event.getAction()",event.getAction()+"");
            Log.e("event.keyCode()",keyCode+"");
            if ((event.getAction() == KeyEvent.ACTION_DOWN) &&
                    (keyCode == KeyEvent.KEYCODE_ENTER))
                switch (category) {
                    case "Basic":
                        if (answer3.getText().toString().equalsIgnoreCase(BasicList.get(level).getbasicans3())) {
                            Toast.makeText(QuestionActivity.this, "Correct!", Toast.LENGTH_SHORT);
                        } else {
                            Toast.makeText(QuestionActivity.this, "Wrong!", Toast.LENGTH_SHORT);
                        }
                    case "Introductory":
                        if (answer3.getText().toString().equalsIgnoreCase(IntroList.get(level).getintroans3())) {
                            Toast.makeText(QuestionActivity.this, "Correct!", Toast.LENGTH_SHORT);
                        } else {
                            Toast.makeText(QuestionActivity.this, "Wrong!", Toast.LENGTH_SHORT);
                        }
                    case "Intermediate":
                        if (answer3.getText().toString().equalsIgnoreCase(IntermList.get(level).getintermans3())) {
                            Toast.makeText(QuestionActivity.this, "Correct!", Toast.LENGTH_SHORT);
                        } else {
                            Toast.makeText(QuestionActivity.this, "Wrong!", Toast.LENGTH_SHORT);
                        }
                    case "Advanced":
                        if (answer3.getText().toString().equalsIgnoreCase(AdvList.get(level).getadvancedans3())) {
                            Toast.makeText(QuestionActivity.this, "Correct!", Toast.LENGTH_SHORT);

                        } else {
                            Toast.makeText(QuestionActivity.this, "Wrong!", Toast.LENGTH_SHORT);
                        }
                    case "Sec1":
                        if (answer3.getText().toString().equalsIgnoreCase(Sec1List.get(level).getsec1ans3())) {
                            Toast.makeText(QuestionActivity.this, "Correct!", Toast.LENGTH_SHORT);
                        } else {
                            Toast.makeText(QuestionActivity.this, "Wrong!", Toast.LENGTH_SHORT);
                        }
                    case "Sec2":
                        if (answer3.getText().toString().equalsIgnoreCase(Sec2List.get(level).getsec2ans3())) {
                            Toast.makeText(QuestionActivity.this, "Correct!", Toast.LENGTH_SHORT);
                        } else {
                            Toast.makeText(QuestionActivity.this, "Wrong!", Toast.LENGTH_SHORT);
                        }
                        return true;
                }
            return false;


        }
    });

    answer4.setOnKeyListener(new View.OnKeyListener() {
        @SuppressLint("ShowToast")
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            Log.e("event.getAction()",event.getAction()+"");
            Log.e("event.keyCode()",keyCode+"");
            if ((event.getAction() == KeyEvent.ACTION_DOWN) &&
                    (keyCode == KeyEvent.KEYCODE_ENTER))
                switch (category) {
                    case "Basic":
                        if (answer4.getText().toString().equalsIgnoreCase(BasicList.get(level).getbasicans4())) {
                            Toast.makeText(QuestionActivity.this, "Correct!", Toast.LENGTH_SHORT);
                        } else {
                            Toast.makeText(QuestionActivity.this, "Wrong!", Toast.LENGTH_SHORT);
                        }
                    case "Introductory":
                        if (answer4.getText().toString().equalsIgnoreCase(IntroList.get(level).getintroans4())) {
                            Toast.makeText(QuestionActivity.this, "Correct!", Toast.LENGTH_SHORT);
                        } else {
                            Toast.makeText(QuestionActivity.this, "Wrong!", Toast.LENGTH_SHORT);
                        }
                    case "Intermediate":
                        if (answer4.getText().toString().equalsIgnoreCase(IntermList.get(level).getintermans4())) {
                            Toast.makeText(QuestionActivity.this, "Correct!", Toast.LENGTH_SHORT);
                        } else {
                            Toast.makeText(QuestionActivity.this, "Wrong!", Toast.LENGTH_SHORT);
                        }
                    case "Advanced":
                        if (answer4.getText().toString().equalsIgnoreCase(AdvList.get(level).getadvancedans4())) {
                            Toast.makeText(QuestionActivity.this, "Correct!", Toast.LENGTH_SHORT);

                        } else {
                            Toast.makeText(QuestionActivity.this, "Wrong!", Toast.LENGTH_SHORT);
                        }
                    case "Sec1":
                        if (answer4.getText().toString().equalsIgnoreCase(Sec1List.get(level).getsec1ans4())) {
                            Toast.makeText(QuestionActivity.this, "Correct!", Toast.LENGTH_SHORT);
                        } else {
                            Toast.makeText(QuestionActivity.this, "Wrong!", Toast.LENGTH_SHORT);
                        }
                    case "Sec2":
                        if (answer4.getText().toString().equalsIgnoreCase(Sec2List.get(level).getsec2ans4())) {
                            Toast.makeText(QuestionActivity.this, "Correct!", Toast.LENGTH_SHORT);
                        } else {
                            Toast.makeText(QuestionActivity.this, "Wrong!", Toast.LENGTH_SHORT);
                        }
                        return true;
                }
            return false;
        }
    });


    switch (category) {
        case "Basic":
            textview.setText(BasicQuestion[level]);
            questionLabel.setText(BasicList.get(level).getbasicque());
            break;
        case "Introductory":
            textview.setText(IntroductoryQuestion[level]);
            questionLabel.setText(IntroList.get(level).getintroque());
            break;
        case "Intermediate":
            textview.setText(IntermQuestion[level]);
            questionLabel.setText(IntermList.get(level).getintermque());
            break;
        case "Advanced":
            textview.setText(AdvancedQuestion[level]);
            questionLabel.setText(AdvList.get(level).getadvancedque());
            break;
        case "Sec1":
            textview.setText(AdvancedQuestion[level]);
            questionLabel.setText(Sec1List.get(level).getsec1que());
            break;
        case "Sec2":
            textview.setText(AdvancedQuestion[level]);
            questionLabel.setText(Sec2List.get(level).getsec2que());
            break;
        default:
            textview.setText("error");
            break;
    }

}

}

java android android-studio
2个回答
0
投票

你还没给我看你的祝酒词呢 请补充。

.show()

例如:

Toast.makeText(QuestionActivity.this, "back -> " + position  , Toast.LENGTH_SHORT).show();

要隐藏任何元素,在.xml文件中设置默认属性为隐藏。


    android:visibility="gone"

只要你想,它就应该显示出使用if条件。

if ((value != "") && (value != null)){
   EditText.setVisibility(View.VISIBLE); 
}

0
投票

如果它是一个字符串,只要事先检查字符串是否为空,然后写上这个。

mEditText.setVisibility(View.GONE)

你也可以放一个类似的文本观察器,只要你改变textViewEditText的文本,它就会工作。

  mEditText.addTextChangedListener(object :TextWatcher{
            override fun afterTextChanged(s: Editable?) {
                TODO("Not yet implemented")
            }

            override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
                TODO("Not yet implemented")
            }

            override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
                mEditText.visibility=View.INVISIBLE// or gone
            }
        })
© www.soinside.com 2019 - 2024. All rights reserved.