带有和EditText的对话框片段在加载后自动显示键盘

问题描述:

我有一个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> 

我不得不将焦点放在编辑文本上方的视图上使用

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

视图

试试这个:

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

使用此代码隐藏编程

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