Отображать TextView, когда EditText не пуст - PullRequest
0 голосов
/ 19 ноября 2018

Я работаю с приложением Android и столкнулся со следующей проблемой.

Проблема: Я хочу, чтобы TextView отображал некоторый текст, когда два поля edittext не пусты (когда в полях edittext есть текст).

Что я сделал:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle   
savedInstanceState) {
View rootView = inflater.inflate(R.layout.text_to_speech, container, false);  
...

if(edittextbox1.getText().toString().length() !=0 && edittextbox2.getText().toString().length() !=0) {
    textview.setText("some text")
} 
return rootView;
}

Это не работает. Текстовое представление никогда не всплывает. Есть идеи почему?

Ответы [ 4 ]

0 голосов
/ 19 ноября 2018

Попробуйте добавить TextWatcher для редактирования текста. Вы можете изменить текст для редактирования текста, а затем получить длину и показать свой textView, если условие выполняется.

TextWatcher textWatcher = new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence s, int st, int b, int c)
        {

        }

        @Override
        public void beforeTextChanged(CharSequence s, int st, int c, int a)
        {

        }

        @Override
        public void afterTextChanged(Editable s)
        {
            if(edittextbox1.getText().toString().length() != 0 && edittextbox2.getText().toString().length() != 0) {
                 textView.setVisibility(View.VISIBLE);
                 textview.setText("some text");
             }
        }
    };

  edittextbox1.addTextChangedListener(textWatcher);
  edittextbox2.addTextChangedListener(textWatcher);
0 голосов
/ 19 ноября 2018

Вам нужно использовать что-то подобное для прослушивания ваших EditText полей.

edittextbox1 = (EditText)findViewById(R.id.editText);

edittextbox1.addTextChangedListener(new TextWatcher() {

    @Override
    public void onTextChanged(CharSequence s, int st, int b, int c) 
    {

    }

    @Override
    public void beforeTextChanged(CharSequence s, int st, int c, int a) 
    {
       if(edittextbox1.getText().toString().length() !=0) {
       textview.setText("some text")
  } 
    }

    @Override
    public void afterTextChanged(Editable s) 
    {
        if(edittextbox1.getText().toString().length() !=0) {
        textview.setText("some text")
  } 
    }
});
0 голосов
/ 19 ноября 2018

Сделай так. Это будет работать!

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle   
savedInstanceState) {
   View rootView = inflater.inflate(R.layout.text_to_speech, container, false); 
   EditText edittextbox1=(EditText)rootView.findViewById(R.id.your_edittext_id1); 
   EditText edittextbox2=(EditText)rootView.findViewById(R.id.your_edittext_id2);
   TextView textView=(TextView)rootView.findViewById(R.id.your_textview_id1);

   if ((edittextbox1.getText().toString().length() != 0) && (edittextbox2.getText().toString().length() != 0)) {
        textView.setVisibility(View.VISIBLE);
        textview.setText("some text");
   } else {
        textView.setVisibility(View.GONE);
   }
   return rootView;
}
0 голосов
/ 19 ноября 2018

Пожалуйста, попробуйте установить видимость вашего textview

  @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle   
savedInstanceState) {
View rootView = inflater.inflate(R.layout.text_to_speech, container, false);  
...

if(edittextbox1.getText().toString().length() !=0 && edittextbox2.getText().toString().length() !=0) {
    textview.setText("some text");
     textview.setVisibility(View.VISIBLE);
} 
return rootView;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...