Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/44.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 文本字段聚焦时显示时间选择器_Java_Android_Timepicker - Fatal编程技术网

Java 文本字段聚焦时显示时间选择器

Java 文本字段聚焦时显示时间选择器,java,android,timepicker,Java,Android,Timepicker,我刚刚进入android应用程序,现在正尝试使用一个界面,允许用户在文本框中输入时间。当文本框聚焦时,将显示“时间选择器”对话框。但是现在,当我单击文本框时,日期选择器对话框不会显示 WorkDetails.java public void onFocusChange(View v, boolean hasFocus) { EditText txtTime = (EditText) findViewById(R.id.editText6); txtTime.set

我刚刚进入android应用程序,现在正尝试使用一个界面,允许用户在文本框中输入时间。当文本框聚焦时,将显示“时间选择器”对话框。但是现在,当我单击文本框时,日期选择器对话框不会显示

WorkDetails.java

public void onFocusChange(View v, boolean hasFocus) {
        EditText txtTime = (EditText) findViewById(R.id.editText6);
        txtTime.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            public void onFocusChange(View v, boolean hasFocus) {
                if (hasFocus)
                {
                    TimePick time = new TimePick(v);
                    FragmentTransaction ft = getFragmentManager().beginTransaction();
                    time.show(ft, "TimePicker");

                }
            }
        });
    }
@SuppressLint("ValidFragment")
public class TimePick extends DialogFragment implements TimePickerDialog.OnTimeSetListener {
    private TextView time;

    public TimePick(View view)
    {
        time=(EditText)view;
    }


    public Dialog onCreateDialog(Bundle savedInstanceState)
    {
        final Calendar c= Calendar.getInstance();
        int hour=c.get(Calendar.HOUR_OF_DAY);
        int minute=c.get(Calendar.MINUTE);

        //Toast.makeText(getActivity(),this,"Date: "+year+"-",+month+"-"+day,Toast.LENGTH_SHORT).show();
        return new TimePickerDialog(getActivity(),this,hour,minute, DateFormat.is24HourFormat(getActivity()));
    }

    public void onTimeSet(TimePicker view,int hourofDay, int minute)
    {

        time.setText(Integer.toString(hourofDay) + ":" + Integer.toString(minute));



    }


}
TimePick.java

public void onFocusChange(View v, boolean hasFocus) {
        EditText txtTime = (EditText) findViewById(R.id.editText6);
        txtTime.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            public void onFocusChange(View v, boolean hasFocus) {
                if (hasFocus)
                {
                    TimePick time = new TimePick(v);
                    FragmentTransaction ft = getFragmentManager().beginTransaction();
                    time.show(ft, "TimePicker");

                }
            }
        });
    }
@SuppressLint("ValidFragment")
public class TimePick extends DialogFragment implements TimePickerDialog.OnTimeSetListener {
    private TextView time;

    public TimePick(View view)
    {
        time=(EditText)view;
    }


    public Dialog onCreateDialog(Bundle savedInstanceState)
    {
        final Calendar c= Calendar.getInstance();
        int hour=c.get(Calendar.HOUR_OF_DAY);
        int minute=c.get(Calendar.MINUTE);

        //Toast.makeText(getActivity(),this,"Date: "+year+"-",+month+"-"+day,Toast.LENGTH_SHORT).show();
        return new TimePickerDialog(getActivity(),this,hour,minute, DateFormat.is24HourFormat(getActivity()));
    }

    public void onTimeSet(TimePicker view,int hourofDay, int minute)
    {

        time.setText(Integer.toString(hourofDay) + ":" + Integer.toString(minute));



    }


}

尝试在xml文件中设置android:clickable=“true”和android:focusableInTouchMode=“false”。

是否尝试在edittext上单击侦听器?谢谢您的回复。我尝试了
    editText = (EditText)findViewById(R.id.editText);
    editText2 = (EditText)findViewById(R.id.editText2);
    editText3 = (EditText)findViewById(R.id.editText3);

    editText2.setOnFocusChangeListener(new View.OnFocusChangeListener()
    {
        @Override
        public void onFocusChange(View v, boolean hasFocus)
        {
            String input;
            EditText editText;

            if(!hasFocus)
            {
                TimePick time = new TimePick(v);
                FragmentTransaction ft = getFragmentManager().beginTransaction();
                time.show(ft, "TimePicker");
            }
        }
    });


    editText2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            TimePick time = new TimePick(v);
            FragmentTransaction ft = getFragmentManager().beginTransaction();
            time.show(ft, "TimePicker");
        }
    });
}

public class TimePick extends DialogFragment implements TimePickerDialog.OnTimeSetListener
{
    private TextView time;

    public TimePick(View view)
    {
        time=(EditText)view;
    }

    public Dialog onCreateDialog(Bundle savedInstanceState)
    {
        final Calendar c= Calendar.getInstance();
        int hour=c.get(Calendar.HOUR_OF_DAY);
        int minute=c.get(Calendar.MINUTE);
        //Toast.makeText(getActivity(),this,"Date: "+year+"-",+month+"-"+day,Toast.LENGTH_SHORT).show();
        return new TimePickerDialog(getActivity(),this,hour,minute, DateFormat.is24HourFormat(getActivity()));
    }
    public void onTimeSet(TimePicker view,int hourofDay, int minute)
    {
        time.setText(Integer.toString(hourofDay) + ":" + Integer.toString(minute));
    }
}