Установите видимость GONE, если TextView отображает определенный текст - PullRequest
0 голосов
/ 12 июня 2018

Есть ли способ, если TextView показывает конкретный текст, например 0% от , поэтому видимость текста отключена, иначе его видно.

точно так же, как этот код

if(text.length() == 0 || text.equals(""))
            {
                mTel1.setVisibility(View.GONE);
            } else {
                mTel1.setVisibility(View.VISIBLE);
            }

Ответы [ 4 ]

0 голосов
/ 12 июня 2018

, если вы хотите показать 1% скидку , оберните TextView в CardView или LinearLayout и попробуйте в адаптере просмотра переработчика.

class ViewHolder extends RecyclerView.ViewHolder{

    public TextView discountedvalue;

    public CardView cardview;

    public ViewHolder(View itemView) {

        super(itemView);
        discountedvalue = (TextView) itemView.findViewById(R.id.DiscountValue);
        cardview = (CardView) itemView.findViewById(R.id.cardview);
        discountedvalue.addTextChangedListener(new TextWatcher() {
                @Override
                public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

                }

                @Override
                public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {

                }

                @Override
                public void afterTextChanged(Editable editable) {

                    if(editable.toString().equals("0 % off")){

                        cardview.setVisibility(View.GONE);

                    }else{

                        cardview.setVisibility(View.VISIBLE);

                    }


                }
            });

    }
}
0 голосов
/ 12 июня 2018

Да, вы можете реализовать свою логику в слушателе, который будет срабатывать всякий раз, когда пользователь изменяет текст в EditText.Пусть ваше задание выполнит TextWatcher, а затем попробуйте что-то подобное в своем задании:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    EditText ed = new EditText(this);
    ed.addTextChangedListener(this);
    setContentView(editText);

    // plus your current code
}

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
    String ed_text = ed.getText();
    if (ed_text.length() == 0 || ed_text.equals("")) {
        mTel1.setVisibility(View.GONE);
    }
    else {
        mTel1.setVisibility(View.VISIBLE);
    }
}

Примечание: Этот ответ был первоначально дан, когда ОП спрашивал о EditText.С тех пор OP изменил вопрос на TextView, но то, что я предлагаю выше, обычно можно использовать для любого слушателя (например, слушателя, который обновляет TextView).

0 голосов
/ 12 июня 2018
    final TextView text=findViewById(R.id.myTextView);


    text.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

        }

        @Override
        public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {

        }

        @Override
        public void afterTextChanged(Editable editable) {

            if(editable.toString().equals("Your Text ")){

                // 1 - You can set empty text
                text.setText("");
                // 2 - Or you can change the color of the text
                text.setTextColor(Color.TRANSPARENT);
                // 3 - Or you can change the visibility of the view
                text.setVisibility(View.INVISIBLE);


            }else{

                //Here you should undo your code 

                //1 - if you using method one dose not need to do anything here 
                // for method 2 
                text.setTextColor(Color.BLACK);
                // for method 3
                text.setVisibility(View.VISIBLE);
            }


        }
    });
0 голосов
/ 12 июня 2018

Вы можете сделать это с помощью изменения цвета текста

tvPoints.setTextColor(Color.TRANSPARENT);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...