2014-01-24 1 views
1

У меня проблема с клавиатурой. Я исследовал весь «Stackoverflow», я проверил миллион различных методов. И все же нельзя скрывать клавиатуру, когда появляется «Диалог». Может быть, у кого-то есть 10000% рабочего решения?Клавиатура отображается в макете «DialogPreference» с TextEdit

public class ConfirmDialog extends DialogPreference implements OnClickListener{ 

public ConfirmDialog(Context context, AttributeSet attrs) { 
    super(context, attrs); 
    // TODO Auto-generated constructor stub 

    setPositiveButtonText(R.string.b_ok); 
    setNegativeButtonText(R.string.b_cancel); 
} 

protected View onCreateDialogView(){ 

    LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View createdv = inflater.inflate(R.layout.confirm_dialog, null); 

      //Here I've tried to hide a keyboard!!!!!!!!!!!!!! 
    ((EditText) createdv.findViewById(R.id.confirm_name)).setOnFocusChangeListener(new View.OnFocusChangeListener() { 

     public void onFocusChange(View v, boolean hasFocus) { 
      if(hasFocus) 
      { 
        getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); 
      } 
      // TODO Auto-generated method stub 

     } 
    }); 

    getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);} 

}

ответ

2

решаемые ... В XML-документ прямо перед тегом EditText Я добавил ...

<LinearLayout android:focusable="true" 
      android:focusableInTouchMode="true" 
      android:layout_width="0px" 
      android:layout_height="0px" /> 

Я читал here.

+0

хорошо, что позволяет легко. – CrandellWS

+0

@ пользователь922907, спасибо. Чрезвычайно умный и очень простой. Ни одно из его «регулярных» решений здесь на SO (все варианты вашего исходного примера кода выше), похоже, работает для макета DialogPreference. –

1

это, как я реализовать его в моем проекте этот метод придерживаются той точки зрения, как EditText и скрыть экранную клавиатуру

private void hidesoftKeyboard(View v) { 

    InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); 
    imm.hideSoftInputFromWindow(v.getWindowToken(), 0); 

} 

кормить меня

+0

Я пробовал ... не работает ... InputMethodManager imm = (InputMethodManager) getContext(). GetSystemService (Context.INPUT_METHOD_SERVICE); – user922907

+0

Можете ли вы опубликовать свой макет и полную реализацию, могу ли я помочь вам –

+0

Я не могу добавить код здесь. Слишком много и слишком много ошибок. Stackoverflow не разрешает. – user922907