2013-08-28 3 views
0

사용자가 로그인 및 암호를 설정하는 첫 번째 활동이 있습니다. 그런 다음 그는 "OK"를 클릭하여 키보드가 열리고 B 액티비티에 도착합니다. B 액티비티의 onCreate에서 DialogFrament를 표시하지만 DialogFragment를 숨길 때까지 키보드가 열립니다.DialogFragment를 표시하기 전에 키보드 숨기기

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    GeolocalisationDialog geoDlg = new GeolocalisationDialog(); 
    geoDlg.show(getSupportFragmentManager(), "geoDlg"); 
} 

내 질문은 내가 DialogFragment를 표시하기 전에 키보드를 숨길 수있는 방법인가?

추신 : 내가 안드로이드 설정하려고했습니다 : 내 DialogFrament는 기본 DialogFragment에게

public class GeolocalisationDialog extends DialogFragment { 

private static DialogClickListener callback; 

@Override 
public void onAttach(Activity activity) { 
    super.onAttach(activity); 
    try { 
     callback = (DialogClickListener) activity; 
    } catch (ClassCastException e) { 
     throw new ClassCastException(activity.toString() + " must implement DialogClickListener"); 
    } 
} 

@Override 
public Dialog onCreateDialog(Bundle savedInstanceState) { 
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
    builder.setMessage(R.string.authorize_geoloc) 
      .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int id) { 
        callback.onYesClick(); 
       } 
      }) 
      .setNegativeButton(R.string.refuse, new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int id) { 
        callback.onNoClick(); 
       } 
      }); 

    return builder.create(); 
} 

} 

PS2입니다 windowSoftInputMode = "stateHidden"를 매니페스트에 그것은 다음

답변

0

사용을 작동하지 않습니다 강제 소프트 키보드를 숨기려면 :

InputMethodManager imm = (InputMethodManager)getSystemService(
     Context.INPUT_METHOD_SERVICE); 
imm.hideSoftInputFromWindow(yourEditText.getWindowToken(), 0); 
// here you may choose the editText where the last time keyboard was opened. 

그 이상을 How to make the virtual keyboard go away?를 참조하십시오.

+0

활동 A 또는 B에서? 정확하게 DialogFragment를 표시하지 않으면 새로운 활동이 시작될 때 키보드가 자동으로 숨겨집니다. – mrroboaat

+0

'확인'버튼 onClick 내에서이 작업을 수행 할 수 있습니다 (문제가있는 것으로 보이는 경우). 그 후 사용자가 암호 입력을 마쳤다고 가정합니다. 첫 번째 활동에서 그렇게하십시오. 'yourEditText'는 암호 필드의 EditText가 될 수 있습니다. –