2011-02-28 2 views
1

J'ai créé le sélecteur de temps. Mais dans mon projet, j'ai besoin d'insérer quatre sélecteur de temps dans les champs EditText. Lorsque vous cliquez sur le EditText, il va demander à theedailog de régler l'heure.Il est si long de créer le sélecteur de temps dans la classe Activity.So je veux créer une classe de sélecteur de temps séparée. J'ai créé le TimePickerClass, mais il montre une erreur. S'il vous plaît aidez-moi.Comment créer une classe de sélecteur de temps séparée

package com.sample.uiscreen; 

import android.app.Dialog; 
import android.app.TimePickerDialog; 
import android.view.View; 
import android.widget.EditText; 
import android.widget.TimePicker; 


public class TimePickClass { 


    private int mHour; 
    private int mMinute; 
    EditText time; 
    public static final int TIME_DIALOG_ID = 0; 
    MyActivity ma=null; 




// the callback received when the user "sets" the time in the dialog 
    public TimePickerDialog.OnTimeSetListener mTimeSetListener =  
        new TimePickerDialog.OnTimeSetListener() { 
     public void onTimeSet(TimePicker view, int hourOfDay, int minute) { 
      mHour = hourOfDay; 
      mMinute = minute; 
      time.setText(  
        new StringBuilder() 
        .append(pad(mHour)).append(":") 
        .append(pad(mMinute)));} 
    //pad method 
     private String pad(int c) { 
      if (c >= 10) 
       return String.valueOf(c); 
      else  return "0" + String.valueOf(c);  } }; 

      protected Dialog onCreateDialog(int id) { 
       switch (id) {  
       case TIME_DIALOG_ID:   
      return new TimePickerDialog(ma, 
        mTimeSetListener, mHour, mMinute, true); }  
       return null; } 





} 
+1

Quelle est l'erreur? Stack trace s'il vous plaît ... – Mudassir

+0

J'ai obtenu une solution comment créer plus d'un sélecteur de temps.Mais j'ai créé ceux-ci dans la classe d'activité.Mais je veux dans une nouvelle classe. –

Répondre

0

Mon code est le suivant

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     // capture our View elements 
     settime1 = (EditText) findViewById(R.id.time1); 
     // add a click listener to the EditText 
     settime1.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       showDialog(TIME_ID1);   }  }); 

    settime2 = (EditText) findViewById(R.id.time2); 
    settime2.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      showDialog(TIME_ID2);   }  }); 

     } 

// the callback received when the user "sets" the time in the dialogprivate 
    TimePickerDialog.OnTimeSetListener mTimeSetListener =  
     new TimePickerDialog.OnTimeSetListener() { 
     public void onTimeSet(TimePicker view, int hourOfDay, int minute) { 
      mHour = hourOfDay; 
      mMinute = minute; 
      updateDisplay();  } }; 

      // updates the time we display in the 
      private void updateDisplay() { 
       settime1.setText(  
         new StringBuilder() 
         .append(pad(mHour)) 
         .append(":") 
         .append(pad(mMinute)));} 
      private static String pad(int c) { if (c >= 10)   
       return String.valueOf(c);  
      else  return "0" + String.valueOf(c);} 


        protected Dialog onCreateDialog(int id) { 
         switch (id) { 
         case TIME_ID1: 
          return new TimePickerDialog(this, 
            mTimeSetListener, mHour, mMinute, true); 
         case TIME_ID2: 
          return new TimePickerDialog(this, 
            mTimeSetListener, mHour, mMinute, true);} 
         return null;} 
+0

S'il vous plaît tout le monde sait, dites-moi comment écrire ces codes dans une classe distincte.J'ai essayé. Mais incapable de le faire. –

Questions connexes