5

我有一個DialogFragment,其中有一個EditText的視圖。每當我顯示對話框時,edittext都有焦點,鍵盤出現。帶有和EditText的對話框片段在加載後自動顯示鍵盤

我該如何阻止它自動出現?

我試圖把android:windowSoftInputMode="stateHidden"在我的清單爲創建該片段的活性但沒有任何效果

這是我的對話片段

public class RegDialog extends DialogFragment { 

OnRegComplete mRegComplete; 

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

public Dialog onCreateDialog(Bundle state){ 
    Dialog d = new Dialog(getActivity()); 
    d.requestWindowFeature(Window.FEATURE_NO_TITLE); 
    d.setContentView(R.layout.registration); 
    d.setCanceledOnTouchOutside(false); 

    return d; 
} 

public interface OnRegComplete{ 
    void onRegComplete(); 
} 

}

這是我的佈局

<TextView 
    android:id="@+id/textView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_toRightOf="@+id/imageView1" 
    android:layout_marginLeft="20dp" 
    android:layout_alignParentTop="true" 
    android:layout_marginTop="20dp" 
    android:layout_marginRight="20dp" 
    android:textSize="30sp" 
    android:text="Registration" /> 

<TextView 
    android:id="@+id/textView2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_below="@+id/textView3" 
    android:layout_marginLeft="26dp" 
    android:layout_marginTop="16dp" 
    android:text="State" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 

<TextView 
    android:id="@+id/textView3" 
    android:layout_width="wrap_content" 
    android:layout_below="@+id/imageView1" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/textView2" 
    android:layout_marginTop="10dp" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:text="@string/reg_title" /> 

<Spinner 
    android:id="@+id/spinner2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignBottom="@+id/textView4" 
    android:layout_toRightOf="@+id/textView4" 
    android:layout_marginRight="50dp" 
    android:minWidth="300dp" 
    android:layout_alignLeft="@+id/editText1" 
    /> 

<TextView 
    android:id="@+id/textView5" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/textView4" 
    android:layout_below="@+id/textView4" 
    android:layout_marginTop="40dp" 
    android:text="Station" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 

<TextView 
    android:id="@+id/textView4" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/textView2" 
    android:layout_below="@+id/textView2" 
    android:layout_marginTop="40dp" 
    android:text="County" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 

<Spinner 
    android:id="@+id/spinner1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/textView4" 
    android:layout_marginRight="50dp" 
    android:minWidth="300dp" 
    android:layout_alignLeft="@+id/editText1" /> 

<EditText 
    android:id="@+id/editText1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignBottom="@+id/textView6" 
    android:layout_toRightOf="@+id/textView6" 
    android:layout_marginRight="50dp" 
    android:minWidth="300dp" 
    android:layout_marginLeft="20dp" 
    android:ems="10" 
    android:inputType="textPassword" /> 

<Spinner 
    android:id="@+id/spinner3" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/textView6" 
    android:layout_marginRight="50dp" 
    android:minWidth="300dp" 
    android:layout_alignLeft="@+id/editText1" /> 

<Button 
    android:id="@+id/button1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_centerHorizontal="true" 
    android:layout_marginBottom="36dp" 
    android:text="@string/reg_btn" /> 

<TextView 
    android:id="@+id/textView6" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/textView5" 
    android:layout_below="@+id/textView5" 
    android:layout_marginTop="42dp" 
    android:text="Password" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 

<ImageView 
    android:id="@+id/imageView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" 
    android:layout_marginLeft="60dp" 
    android:layout_marginTop="15dp" 
    android:src="@drawable/mobile_mapr_logo" /> 

</RelativeLayout> 

回答

9

我不得不將焦點放在編輯文本上方的視圖上使用

android:focusable="true" 
android:focusableInTouchMode="true" 

視圖

0

試試這個:

your_edit_text.clearFocus(); 

怎麼樣,如果你在清單改爲:

android:configChanges="keyboardHidden" 

,幫助我與一些鍵盤的問題,我不得不:-)

+0

沒有工作,要麼 – tyczj 2013-02-28 21:48:34

+0

見我的編輯:-) – Evilunclebill 2013-02-28 21:52:11

+0

沒有骰子,要麼:( – tyczj 2013-02-28 22:11:15

13

使用此代碼隱藏編程

Dialog dialog = builder.create(); 
dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);