2012-07-08 50 views
0

我有編輯框我想,當點擊它來顯示TimePickerDialog代替鍵盤,而當選擇時間選取器消失,時間在EditText上顯示TimePickerDialog

這個EditText上顯示的適配器類這樣

public class TminuseistAdaptar extends ArrayAdapter<Tr> { 

    private final Context context; 
    ArrayList<Tr> TrBasics ; 

    static final int TIME_DIALOG_ID = 0; 

    CheckBox Confirm ; 
    ImageButton DialUp; 

    EditText data ; 

    public TminuseistAdaptar(Context context, int ResourceId, 
      ArrayList<Tr> items) 
    { 


     super(context, ResourceId, items); 
     this.context = context; 
     this.TrBasics = items ; 

    } 

    public View getView(int position, View convertView, ViewGroup parent) { 

} 
} 

我不喜歡的東西,對於EDITTEXT

textViewEncounterType = (EditText) rowView.findViewById(R.id.TminuseTime); 
     textViewEncounterType.setText(TreatementMinuseObject.TBasic.TreatementTime); 
     textViewEncounterType.setTag(position); 



     textViewEncounterType.setClickable(true); 
     textViewEncounterType.setInputType(InputType.TYPE_NULL); 

     textViewEncounterType.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 

       new TimePickerDialog(context, mTimeSetListener, hour, minute, false); 

      } 
     }); 

,但沒有出現,我把這個適配器類在其他類擴展Fragement

public class TminusList extends Fragment { 

問候

+0

看一看這裏http://stackoverflow.com/questions/8383550/timepicker-dialog – vasart 2012-07-08 13:41:01

+0

看看這些鏈接http://www.mkyong.com/android/android -time-picker-example /,http://androidexam.blogspot.in/2011/09/android-time-picker-dialog-example.html,http://thesarmad.blogspot.in/2009/12/time- picker-example-android.html – Deepak 2012-07-08 13:43:28

+0

如果我在適配器中,我的意思是類繼承ArrayAdapter AMH 2012-07-08 14:26:20

回答

4

你可以做這樣的事情(用於片實現):

startTxt = (EditText) v.findViewById(R.id.joindate); 
startTxt.setClickable(true); 
startTxt.setInputType(InputType.TYPE_NULL); 

startTxt.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     DialogFragment newFragment = new TimeDialog(); 
     newFragment.show(getFragmentManager(), "dialog"); 
    } 
}); 

而且TimeDialog:

public class TimeDialog extends DialogFragment { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
    } 

    public void onTimeSet(TimePicker view, int hourOfDay, int minute) { 
     // Set your view 
    } 

    @Override 
    public Dialog onCreateDialog(Bundle savedInstanceState) { 
     return new TimePickerDialog(getActivity(), this, hour, minute, false);  } 
} 

此代碼將導致的EditText框彈出timepicker對話框而不是鍵盤(一旦你放入了timepicker對話框代碼)。

請注意,您需要在XML中使用android:focusableInTouchMode="false"來設置EditText(在上面的示例中它將是EditText,其編號爲joindate),否則需要兩次點擊才能打開對話框。

+0

onTouch會在onClick之前觸發,所以鍵盤將在這種情況下打開。 – 2012-07-08 14:22:34

+0

如何顯示dialoge中如果我在適配器中,我的意思是class繼承自ArrayAdapter ,我不能說showdialoge(0 ); – AMH 2012-07-08 14:26:46

+0

@M Mohsin Naeem,恐怕不是。請參閱'startTxt.setInputType(InputType.TYPE_NULL)行''?這意味着沒有鍵盤。我在我的一個應用程序中使用了這個確切的代碼,它彈出我的日期對話框對話框,沒有任何提示鍵盤出現。 – Barak 2012-07-08 14:35:45

2

嘗試

startTxt.setOnTouchListener(new OnTouchListener() { 

      @Override 
      public boolean onTouch(View arg0, MotionEvent arg1) { 
       // TODO Auto-generated method stub 
       //show DateTimepicker 
       return true; //very important in your case if you return false keayboard will open 
      } 
     }); 
+0

問題是如何顯示dialoge如果我在適配器,我的意思是類繼承ArrayAdapter ,我不能說showdialoge(0); – AMH 2012-07-08 14:27:18

+0

您可以用'新DatePickerDialog(背景下, \t \t \t \t \t \t \t \t datePickerListener,2012,10,10).show();'我想你在這裏傳遞上下文.. \t \t \t \t \t \t ' – 2012-07-08 14:39:10

+0

你是否可以看到我更新的問題,我添加了你說但不出現dialoge – AMH 2012-07-08 15:03:33