2014-10-19 89 views
2

我的應用程序有3個編輯文本:名字,姓氏,生日。Android編輯文本使用DatePicker刪除鍵盤

我禁用了鍵盤的生日(狀態隱藏在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"); 
} 

回答

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" 
      />