Android编辑文本删除键盘与DatePicker

时间:2014-10-19 08:57:09

标签: java android xml datepicker keyboard

我的应用程序有3个编辑文本:名字,姓氏,生日。

我为生日禁用了键盘(在XML中使用隐藏的状态),而在点击时会出现DatePicker。但是,输入姓氏后,您可以单击键盘上的下一个名称,它将进入生日,导致键盘再次出现。

在我的XML中,我写了生日编辑文本:

   <EditText
    android:id="@+id/birth"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/lastName"
    android:windowSoftInputMode="stateHidden"
    android:ems="10"
    android:hint="@string/birth" />

如何让下一个按钮显示日期选择器而不是键盘?

此外,我使用OnClickListener来显示datepicker。当我触摸生日的编辑文本字段时,直到我再次单击该字段才会显示。我尝试使用onTouchListener,但这只是使DatePicker出现两次(在我选择日期后再次显示日期选择器屏幕重置我选择的日期)我该如何解决这个问题?

public void onClick(View v) 
{
    DialogFragment calendar = new DatePickerFragment(){
       @Override
       public void onDateSet(DatePicker view, int year, int month, int day) {
            dob.setText("" + year + "-" + (month+1) + "-" + day);
       }
    };
    calendar.show(getFragmentManager(), "datePicker");
}

1 个答案:

答案 0 :(得分:0)

你为什么使用Edittext?我认为TextView将满足您的需求。 应该类似于下面。 (我还没有执行:))

         <TextView
            android:id="@+id/birth"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="16dp"
            android:layout_marginTop="2dp"
            android:layout_alignParentLeft="true"
            android:layout_below="@+id/lastName"
            android:textColor="#404040"
            android:textSize="16sp"

          />
        <View
           android:layout_below="@+id/birth"
           android:layout_alignParentLeft="true"
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:layout_marginTop="1dp"
            android:layout_marginBottom="0dp"
            android:layout_marginLeft="18dp"
            android:layout_marginRight="2dp"
            android:background="#404040"
            />