Android将时间选择器片段的结果发送到活动';自定义对话框

Android将时间选择器片段的结果发送到活动';自定义对话框,android,android-fragments,Android,Android Fragments,大家好,我需要将时间选择器片段的结果发送到我的活动的自定义对话框。我的自定义对话框有一个edittext,我需要在其中显示该edittext的结果。有办法吗 这就是我迄今为止所尝试的: TimePickerFragment public Dialog onCreateDialog(Bundle savedInstanceState) { // use the current time as the default values for the picker

大家好,我需要将时间选择器片段的结果发送到我的活动的自定义对话框。我的自定义对话框有一个edittext,我需要在其中显示该edittext的结果。有办法吗

这就是我迄今为止所尝试的:

TimePickerFragment

public Dialog onCreateDialog(Bundle savedInstanceState)
    {
        // use the current time as the default values for the picker
        Calendar c = Calendar.getInstance();
        hour = c.get(Calendar.HOUR_OF_DAY);
        _minute = c.get(Calendar.MINUTE);

        // create a new instance of TimePickerDialog and return it
        return new TimePickerDialog( getActivity(), this, hour, _minute, DateFormat.is24HourFormat(getActivity()) ); 
    }

    TheListener listener;

    public interface TheListener{
        public void returnTime(String time);
    }

    @SuppressLint("SimpleDateFormat")
    @Override
    public void onTimeSet(TimePicker view, int hourOfDay, int minute)
    {   

        String am_pm;

        if (hourOfDay > 12) {
            hour = hourOfDay - 12;
            am_pm = "PM";
        } else {
            hour = hourOfDay;
            am_pm = "AM";
        }

        String time = + hour + ":" + minute + " " + am_pm;

        Log.e("TimePicker", "Time = " + hour + ":" + minute + " " + am_pm);

        if (listener != null) 
        {
          listener.returnTime(time); 

        }

        //EditText activityButton = (EditText)getActivity().findViewById(R.id.etActualTimeOfArrival);
        //activityButton.setText( time );

    }
main活动

@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
        long id) {
    // TODO onItemClick

            // custom dialog
            final Dialog dialog = new Dialog(this);
            dialog.setContentView(R.layout.routingdetail_update);
            dialog.setTitle("Update Routing Detail");

            // To restrict users to dismiss dialog without choosing an event
            dialog.setCancelable(false);
            etActualTimeOfArrival = (EditText) dialog.findViewById (R.id.etActualTimeOfArrival);

            Button dialogUpdate = (Button) dialog.findViewById(R.id.btUpdate);
            Button dialogCancel = (Button) dialog.findViewById(R.id.btCancel);



            etActualTimeOfArrival.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {

                    showTimePickerForArrivalTime();
                    etActualTimeOfArrival.setText(strArrivalTime);

                }
            });

            // if button is clicked, close the custom dialog
            dialogUpdate.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {

                    dialog.dismiss();

                }
            });


            dialogCancel.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    dialog.dismiss();
                }
            });


            dialog.show();



}

@Override
public void returnTime(String time) {
    // TODO Auto-generated method stub
    strArrivalTime = time;

    Log.e("Set Dialog", time);
}
@覆盖
public void onItemClick(AdapterView父视图、视图、整型位置、,
长id){
//托多·麦克利克
//自定义对话框
最终对话框=新对话框(本);
setContentView(R.layout.routingdetail_更新);
对话框.setTitle(“更新路由详细信息”);
//限制用户在不选择事件的情况下关闭对话框
对话框。可设置可取消(false);
etActualTimeOfArrival=(EditText)dialog.findViewById(R.id.etActualTimeOfArrival);
按钮对话框更新=(按钮)dialog.findviewbyd(R.id.btUpdate);
按钮对话框Cancel=(按钮)dialog.findViewById(R.id.btCancel);
etActualTimeOfArrival.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
showTimePickerForArrivalTime();
etActualTimeOfArrival.setText(strArrivalTime);
}
});
//如果单击按钮,则关闭自定义对话框
dialogUpdate.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
dialog.dismise();
}
});
dialogCancel.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
dialog.dismise();
}
});
dialog.show();
}
@凌驾
公共无效返回时间(字符串时间){
//TODO自动生成的方法存根
strArrivalTime=时间;
Log.e(“设置对话框”,时间);
}

我试过这个界面,但不起作用。有什么想法吗?谢谢你的帮助。谢谢。

使用全局变量?@Nun'eChai如何使用全局变量?在我的时间选择器片段中?可以使用全局变量,类级别。然后将日期/时间值提供给它,并在其他地方使用。如果需要,您可以将其传递给其他类,在这些类中您可以再次使用古老的静态变量和消息传递方式?您还可以填充隐藏的textview并从中获取结果?