当前位置: 首页 > 知识库问答 >
问题:

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

南门洋
2023-03-14

我有一个DialogFragment,它有一个包含EditText的视图。每次我显示对话框时,edittext就会有焦点,键盘就会出现。

我怎样才能阻止它自动出现?

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>

共有1个答案

柳经纶
2023-03-14

使用此代码以编程方式隐藏它

Dialog dialog = builder.create();
dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
 类似资料:
  • 我有这样一个dialogfragment类: 在其布局xml文件中。xml它包含一个自动完成的文本视图。这是from的代码。xml文件 我使用以下代码在单击按钮时弹出对话框片段。所以我给出了这样的答案: 现在我需要创建一个自动完成文本视图的对象,它应该向我展示建议。我有一个数组列表,其中包含自动完成文本视图的数组适配器的数据,我这样编码(这里actv1是自动完成文本视图的对象): 但问题是我不知道

  • 问题内容: 我正在创建用于更改图像的对话框。而不是让用户单击文件输入字段,而是希望立即显示它。输入字段只是一个: 页面加载时是否有显示方式? 如果有一个角度的方法可以做到这一点。 问题答案: 如此处所述,仅InternetExplorer允许以编程方式打开“文件上传”对话框。因此,简短的答案是“否”,没有办法在页面加载时自动打开“文件上传”对话框。 您可能会考虑的长答案是,当用户单击任何内容时都可

  • 我读了DialogFragment,然后把它做成这样的一对一。 在另一个SherlockFragment中,我接下来制作: 但是doPositiveClick()、doNegativeClick()方法希望是静态的,这对我来说不好。

  • Java代码: 我已经通过许多在线链接,但都显示如何在edittext中设置日期,但我想要的是相反的。edittext中有一个值,datepicker对话框将打开,该日期将作为预选值。

  • 我是android studio的新手,我正在尝试实现一个对话框片段,以便在单击按钮或单击工具栏操作添加按钮时弹出。它将数据从对话框发送到一个片段或一个活动(试图了解它是如何为这两个对象工作的)。我的dialog类有一个接口,当我在片段中实现它时,它工作得非常好,但是活动有点不同。我使用接口将数据传递给活动,然后使用Bundle将数据从活动传输到片段。我相信错误发生在onAttach中,因为我已经

  • 我有一个片段,它添加了一个选项到选项菜单。当单击此选项时,将打开一个对话框片段。对话框将原始片段设置为其目标片段。如果在对话片段打开时没有发生方向变化,则目标片段与预期的一样,但是在方向变化之后,目标片段被设置为对话片段本身,而不是先前设置的片段。结果,当试图将目标片段强制转换为被设置为目标片段的片段时,我得到了一个classCastException。我需要在对话框中获取目标片段,因为它实现了一