2013-07-23 10 views
12

DatePickersがEditTextのためにここにポップアップ表示されている他の質問を見ようとしていますが、問題を起こしてしまいました。ポップアップDatePicker for EditText

setOnClickListenerまたはsetOnTouchListenerを使用できる例を見てきましたが、どれが最適でしょうか?

また、私はDatePickerにいくつかの異なるデザインを見ましたが、どのようにデザインを変更しますか?

ここまでは私のコードですが、他の例のコードを使ってみましたが、動作させることができませんでした。

import android.app.Activity; 
import android.os.Bundle; 
import android.widget.EditText; 
import android.widget.TextView; 


/** 
* Created by MOS182 on 7/21/13. 
*/ 
public class AddReminder extends Activity { 

    TextView Title, Amount, PaymentDate, ReminderDate, ReminderTime; 
    EditText eTitle, eAmount, ePaymentDate, eReminderDate, eReminderTime; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 


     super.onCreate(savedInstanceState); 
     setContentView(R.layout.reminders_dialog); 
     initializeVariables(); 
    } 



    private void initializeVariables() 
    { 
     Title = (TextView) findViewById(R.id.tvTitle); 
     Amount = (TextView) findViewById(R.id.tvAmount); 
     PaymentDate = (TextView) findViewById(R.id.tvPaymentDate); 
     ReminderDate = (TextView) findViewById(R.id.tvReminderDate); 
     ReminderTime = (TextView) findViewById(R.id.tvReminderTime); 
     eTitle = (EditText) findViewById(R.id.etTitle); 
     eAmount = (EditText) findViewById(R.id.etAmount); 
     ePaymentDate = (EditText) findViewById(R.id.etPaymentDate); 
     eReminderDate = (EditText) findViewById(R.id.etReminderDate); 
     eReminderTime = (EditText) findViewById(R.id.etReminderTime); 
    } 


} 
+0

http://developer.android.com/guide/topics/ui/controls/ pickers.html。コードスニペットがあるドキュメントを確認してください。また**あなたはどのようにデザインを変えます** plsは精巧です。 – Raghunandan

+0

DatePickerDialogを試しましたか? – R9J

+0

@ R9j私はそれを正しく設定する方法がわからなかったように、他の例を見てみると、それを働かせることができませんでした。 –

答えて

49

私はDatePickerを表示するsetOnClickListenerEditText方法を使用していました。

そして、xmlファイルでEditTextプロパティーandroid:focusable="false"を設定してください。フォーカスと仮想キーボードを避けることができます。

yourEditText.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      //To show current date in the datepicker 
      Calendar mcurrentDate=Calendar.getInstance(); 
      mYear=mcurrentDate.get(Calendar.YEAR); 
      mMonth=mcurrentDate.get(Calendar.MONTH); 
      mDay=mcurrentDate.get(Calendar.DAY_OF_MONTH); 

      DatePickerDialog mDatePicker=new DatePickerDialog(**YourActivityName**.this, new OnDateSetListener() {     
       public void onDateSet(DatePicker datepicker, int selectedyear, int selectedmonth, int selectedday) { 
        // TODO Auto-generated method stub      
        /*  Your code to get date and time */ 
       } 
      },mYear, mMonth, mDay); 
      mDatePicker.setTitle("Select date");     
      mDatePicker.show(); } 
    }); 

そう...古いAPIのおかげで...

+0

setOnClickListenerメソッドを呼び出した後、どのようにDatePickerを表示しましたか? –

+0

あなたは完全なコードが必要だと思っています.iすぐに投稿します.. – Srinivasan

+0

"AddNewMessage '"というシンボルを解決できません。どうすればこのエラーを取り除くことができますか? –

0
/* create calndar object */ 
    Calendar myCalendar = Calendar.getInstance(); 
/* find textview*/ 
date = (TextView) findViewById(R.id.stdate); 
/* and copy the fallowing code*/ 
final DatePickerDialog.OnDateSetListener datePickerListener = new DatePickerDialog.OnDateSetListener() { 
       @Override 
      public void onDateSet(DatePicker view, int year, int monthOfYear,int dayOfMonth) { 
       // TODO Auto-generated method stub 
       myCalendar.set(Calendar.YEAR, year); 
       myCalendar.set(Calendar.MONTH, monthOfYear); 
       myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth); 
       String myFormat = "dd/MMM/yyyy"; //In which you need put here 
       SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.UK); 

       date.setText(sdf.format(myCalendar.getTime())); 

      } 

     }; 


     date.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       new DatePickerDialog(MainActivity.this, datePickerListener, myCalendar 
         .get(Calendar.YEAR), myCalendar.get(Calendar.MONTH), 
         myCalendar.get(Calendar.DAY_OF_MONTH)).show(); 

      } 
     }); 
0

が、私はまだ16をサポートしようと、つまり...自分の考えをコメント...これを試してみてください:

http://javapapers.com/android/android-datepicker/から

あなたにDatePickerDialogを実装DialogFragmentを使用することができますexampled:

必要に応じて、あなたの活動で

はあなたのEditText値を設定します。

private EditText editText; 
//... 

はonclickのリスナーを添付:

editText.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      selectDate(); 

     } 
    }); 
関連する問題