2013-10-06 5 views
0

У меня есть EditText, для которого я хочу изменить стиль текста, когда он сфокусирован, и его содержимое равно содержимому по умолчанию. Вот фрагмент кода:Виртуальная клавиатура не появляется при первом касании

input.setOnFocusChangeListener(new OnFocusChangeListener() { 
    @Override 
    public void onFocusChange(View v, boolean hasFocus) { 
     if (hasFocus) { 
      if (input.getText().toString().equals(defaultText)) { 
       input.setTextAppearance(getActivity(), R.style.contact_us_info_header); 
       input.setText(""); 
      } 
     } 
    } 
}); 

Вопрос заключается в том, что виртуальная клавиатура не появляется, когда я касаюсь этого EditText 1-й раз (текстовый курсор действительно появляется внутри EditText), но показать клавиатуру когда я прикасаюсь к нему еще раз. Если удалить эту строку:

input.setTextAppearance(getActivity(), R.style.contact_us_info_header); 

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

Любая помощь будет оценена.

P/S: Я использовал его внутри фрагмента, поэтому мне нужно вызвать "getActivity()"

ответ

2

Дайте ему выстрелили

input.setOnFocusChangeListener(new OnFocusChangeListener() { 
      @Override 
      public void onFocusChange(View v, boolean hasFocus) { 
       if (hasFocus) { 
        v.performClick(); 
        } 
       } 
      } 
     }); 

и

input.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       if (input.getText().toString().equals(defaultText)) { 
         input.setTextAppearance(getActivity(), R.style.contact_us_info_header); 
         input.setText(""); 
      } 
     }); 
0

вместо из этого:

input.setTextAppearance(getActivity(), R.style.contact_us_info_header); 

попытка:

input.setTextAppearance(this, R.style.contact_us_info_header); 
+0

Я забыл упомянуть, что использовал его внутри фрагмента, поэтому вызов «это» неприменим :( –

Смежные вопросы