我有我想要的编辑框,当点击它来显示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);
}
});但是什么也没有出现,我在另一个类中调用了这个适配器类extend Fragement
public class TminusList extends Fragment {诚挚的问候
发布于 2012-07-08 22:18:02
您可以这样做(对于片段实现):
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框弹出时间选择器对话框,而不是键盘(一旦您输入时间选择器对话框代码)。
注您需要在XML中使用android:focusableInTouchMode="false"设置EditText (在上面的示例中,它将是带有joindate id的EditText ),否则需要单击两次才能打开对话框。
发布于 2012-07-08 22:21:48
试一试
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
}
});https://stackoverflow.com/questions/11383569
复制相似问题