Можно ли установить мой EditText на Invisible, если значение равно none или ""? - PullRequest
0 голосов
/ 30 апреля 2020

Добрый день, я делаю приложение для викторины, которое необходимо набрать ответ. Это мое 1-е приложение.

На мой вопрос есть много вариантов ответа.

  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, и у каждого ответа есть 1 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;
    }

}

}

Ответы [ 2 ]

0 голосов
/ 30 апреля 2020

Вы не показали свой тост. Пожалуйста, добавьте:

.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 голосов
/ 30 апреля 2020

, если это строка заранее, просто проверьте, пуста ли строка, и напишите это:

mEditText.setVisibility(View.GONE)

Вы также можете установить наблюдатель текста таким образом, и он будет работать всякий раз, когда вы изменяете текст textView / EditText

  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
            }
        })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...