Как сделать, чтобы подсказка «Редактировать текст» исчезала при наборе текста?

У меня есть поле «Редактировать текст», с помощью которого я беру день рождения.

Я хочу отобразить DD/MM/YYYY формат даты в качестве подсказки. Также я НЕ хочу, чтобы он исчезал в тот момент, когда это поле сфокусировано.

Я хочу, чтобы текст подсказки заменялся цифрами при наборе текста, а когда числа удалялись, текст подсказки должен снова появляться. Чтобы в середине ввода строка была типа 25/04/1YYY, DD/11/1989 и так далее. Как я могу это сделать?


person Sndn    schedule 19.12.2014    source источник
comment
Вам нужно реализовать TextWatcher и реализовать его вручную. Для этой функциональности нет встроенных методов.   -  person Panther    schedule 19.12.2014
comment
Я могу помочь, но я беру 150 долларов в час, хотя, если вы опубликуете что-то, что вы сделали для достижения своей цели, и расскажете нам, где у вас возникла проблема, я могу помочь вам бесплатно!   -  person DroidDev    schedule 19.12.2014
comment
Вы можете вставить 3 edittext и 2 testview в линейный макет, а затем изменить фокус в зависимости от количества введенных текстов.   -  person hoomi    schedule 19.12.2014


Ответы (2)


Попробуйте это:

final EditText date = new EditText(this);
date .setHint("DD/MM/YYYY");
date .setTextColor(Color.BLACK);


                    date .setOnTouchListener(new OnTouchListener() {

                        @Override
                        public boolean onTouch(View v, MotionEvent event) {
                            date .setText("");
                            return false;
                        }
                    });
person pamitha    schedule 19.12.2014
comment
Спасибо, но это не то, что мне нужно. Это заставляет маску исчезать при прикосновении. Я хочу, чтобы он исчезал посимвольно, когда каждый символ заменяется набранным числом - person Sndn; 19.12.2014

Вот концепция наблюдателя за текстом, вы можете воспользоваться ей.

 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        txtEdit = (EditText) findViewById(R.id.editText1);
        viewText = (TextView) findViewById(R.id.text);

         txtEdit.addTextChangedListener (new TextWatcher() {

              public void beforeTextChanged(CharSequence s, int start, int count, int after) {
                  Log.i("TC", "beforeTC " + s.toString() + " "
                          + s.subSequence(start, start + count).toString());
              }

              public void onTextChanged(CharSequence s, int start, int before, int count) {
                  Log.i("TC", "onTC " + s.toString() + " "
                          + s.subSequence(start, start + count).toString());
              }

              public void afterTextChanged(Editable s) {
                  Log.i("TC", "afterTC " + s.toString());
              }
         });
    }
person Hanish Sharma    schedule 19.12.2014