首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >显示TimePickerDialog

显示TimePickerDialog
EN

Stack Overflow用户
提问于 2012-07-08 21:37:30
回答 2查看 1.8K关注 0票数 0

我有我想要的编辑框,当点击它来显示TimePickerDialog而不是键盘时,当选择选择器消失的时间时,时间显示在编辑文本中

此EditText是适配器类,如下所示

代码语言:javascript
复制
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做过类似的事情

代码语言:javascript
复制
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

代码语言:javascript
复制
public class TminusList   extends Fragment {

诚挚的问候

EN

回答 2

Stack Overflow用户

发布于 2012-07-08 22:18:02

您可以这样做(对于片段实现):

代码语言:javascript
复制
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:

代码语言:javascript
复制
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 ),否则需要单击两次才能打开对话框。

票数 4
EN

Stack Overflow用户

发布于 2012-07-08 22:21:48

试一试

代码语言:javascript
复制
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
            }
        });
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11383569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档