2013-05-04 117 views
2

我有一個日期選擇器中的自定義對話框它顯示日期和用戶可以選擇日期和我得到用戶選擇日期。現在我想通過顯示其他日曆顯示DatePicker與其他日曆系統

來進一步瞭解例如波斯日曆日期代替陽曆日期。現在在我的應用程序中,當用戶從日期選擇器中選擇日期時,我可以在日誌中返回波斯語日期。但我不知道如何更改DatePicker以顯示perisan date.please幫助。

@Override 
public boolean onCreateOptionsMenu(Menu menu) 
{ 
    menu.add("Add Detail").setIcon(R.drawable.ic_compose).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) 
{ 
    final Dialog dialog = new Dialog(this); 
    dialog.setContentView(R.layout.custom); 

    final EditText amount = (EditText) dialog.findViewById(R.id.amtEditText); 
    final DatePicker datePicker = (DatePicker) dialog.findViewById(R.id.datePicker1); 
    Button cancelButton = (Button) dialog.findViewById(R.id.canelButton); 
    Button OKButton = (Button) dialog.findViewById(R.id.OKbutton); 

    OKButton.setOnClickListener(new View.OnClickListener() 
    { 
     @Override 
     public void onClick(View v) 
     { 
      Log.d("---------------", datePicker.getDayOfMonth() +" " 
            + datePicker.getMonth() + " " 
            + datePicker.getYear() + " " 
            + amount.getText()); 

      Toast.makeText(MainActivity.this, "Got click: " 
           + datePicker.getDayOfMonth() + " " 
           + datePicker.getMonth() + " " 
           + datePicker.getYear(), Toast.LENGTH_SHORT).show(); 

      CivilDate civil = new CivilDate(datePicker.getYear(), datePicker.getMonth(), datePicker.getDayOfMonth()); 
      PersianDate perDate = DateConverter.civilToPersian(civil); 

      Log.d("-------", perDate.getDayOfMonth()+ " " + (perDate.getMonth() + 1) + " " + perDate.getYear() + " " + perDate.getMonthName()); 
      datePicker.init(perDate.getYear(), (perDate.getMonth() + 1), perDate.getDayOfMonth(), null); 
     } 
    }); 

回答

2

而不是使用DatePicker切換到使用Android Wheel庫。 它由Google開發人員編寫,它可以看起來像Android DatePicker,它還可以在舊手機上提供一致的外觀和感覺。

它不受你可以放在字段中的限制,這意味着你可以使用任何你想要的東西。

1

並非如此簡單的方法是使用反射來達到進入的DatePicker,得到紡紗和明確設定微調內容,你需要什麼。

這是我寫的使用反射與日本傳統的時間,以取代次TimePicker代碼:https://github.com/aragaer/jtt_android/blob/0855eb7ae1b3de897640bf560cc3bda700cbc2e2/src/com/aragaer/jtt/JttPickerDialog.java 兩種方法之一fixOldfixNew根據API的版本被調用。 API的變化可能會導致fixNew在更新的版本上失敗,這就是爲什麼它不是真正的好方法。

更好的方法可能是簡單複製DatePicker的代碼和佈局,並從中創建自己的自定義視圖。