Android将时间选择器片段的结果发送到活动';自定义对话框
大家好,我需要将时间选择器片段的结果发送到我的活动的自定义对话框。我的自定义对话框有一个edittext,我需要在其中显示该edittext的结果。有办法吗 这就是我迄今为止所尝试的: TimePickerFragmentAndroid将时间选择器片段的结果发送到活动';自定义对话框,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
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并从中获取结果?