2013-12-17 27 views
0

我有一个DatePicker和TimePicker。我能够成功检索所有Date参数值。尽管我在使用TimePicker时遇到错误,但该行显示错误“添加到timepicker”。我在做什么有什么不对?无法从TimePicker检索时间参数

​​
+0

已声明timepicker变量TimePicker? – Avijit

+0

yea ..声明为: - timepicker =(TimePicker)findViewById(R.id.pickertime); – Stef

+0

TimePicker timepicker =(TimePicker)findViewById(R.id.pickertime);像这样使用它。并确保你选择了正确的ID。 – Avijit

回答

1

对于timePicker的Widget,使用这些功能: -

TimeStr = timepicker.getCurrentHour() + " : " + timepicker.getCurrentMinute(); 

用我的TimePicker对话框。

点击按钮时,时间选取器对话框打开。您选择时间,然后将该时间设置为按钮上的文本。 XML包含只有一个按钮ID: - duetime参数

您可以根据自己的需要进行修改: -

package com.example.timepickerdialog; 

import java.util.Calendar; 

import android.app.Activity; 
import android.app.Dialog; 
import android.app.TimePickerDialog; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.TimePicker; 

public class MainActivity extends Activity { 
    private int pHour; 
    private int pMinute; 
    static final int TIME_DIALOG_ID = 0; 
    Button dueTime; 
    private String AmPm; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     dueTime = (Button)findViewById(R.id.dueTime); 
     dueTime.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       showDialog(TIME_DIALOG_ID); 
      } 
     }); 

    } 

    private TimePickerDialog.OnTimeSetListener mTimeSetListener = 
      new TimePickerDialog.OnTimeSetListener() { 
     @Override  
     public void onTimeSet(TimePicker view, int hourOfDay, int minute) { 
      pHour = hourOfDay; 
      if(pHour>11){ 
       //pHour=pHour-12; 
       AmPm="PM"; 
      } 
      else 
       AmPm="AM"; 
      pMinute = minute; 

      dueTime.setText(
        new StringBuilder() 
        .append(pad(pHour)).append(":") 
        .append(pad(pMinute)).append(" ") 
        .append(AmPm)); 
     } 

    }; 
    /** Add padding to numbers less than ten */ 
    private static String pad(int c) { 
     if (c >= 10) 
      return String.valueOf(c); 
     else 
      return "0" + String.valueOf(c); 
    } 

    @Override 
    protected Dialog onCreateDialog(int id) { 
     switch (id) { 

     case TIME_DIALOG_ID: 
      try { 
       /** Get the current time */ 
       final Calendar cal = Calendar.getInstance(); 
       if(dueTime.getText().length()!=0){ 
        String time[]=dueTime.getText().toString().split(":"); 
        String time2[]=time[1].split(" "); 
        if(time2[1].trim().equalsIgnoreCase("AM")){ 
         pHour = Integer.parseInt(time[0]); 
        }else{ 
         pHour = Integer.parseInt(time[0])+12; 
        } 
        pMinute = Integer.parseInt(time2[0]); 
       }else{ 
        pHour = cal.get(Calendar.HOUR_OF_DAY); 
        pMinute = cal.get(Calendar.MINUTE); 
       } 
       return (new TimePickerDialog(this, mTimeSetListener, pHour, pMinute, true)); 
      } catch (IllegalArgumentException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     } 
     return null; 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 

}