我已经阅读了很多关于此的帖子,但我找不到任何适用于此案例的帖子.
I have read many posts on this but I can't find any that apply to this case.
我有一个时间选择器对话框,我已将整数值放在一个字符串中,我需要将此字符串返回到主要活动.
I have a time picker dialog and I have put the integer values together in a string and I need to get this string back to the main activity.
这个字符串值将用于设置按钮的文本.
This string value will then be used to set the text of a button.
如果有人可以帮助我,将不胜感激.
If someone could help me with this it would be most appreciated.
谢谢
对话框片段
public class TimePickerFragment extends DialogFragment implements TimePickerDialog.OnTimeSetListener {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current time as the default values for the picker
final Calendar c = Calendar.getInstance();
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);
// Create a new instance of TimePickerDialog and return it
return new TimePickerDialog(getActivity(), this, hour, minute, DateFormat.is24HourFormat(getActivity()));
}
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
// Do something with the time chosen by the user
String Time =Integer.toString(hourOfDay) + " : " + Integer.toString(minute);
}
}
代码
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
Button btn = (Button) findViewById(R.id.start_time_button);
Button.setText(Time);
}
首选方法是使用回调从 Fragment
获取信号.另外,这也是Android在与Activity通信
The preferred method is to use a callback to get a signal from a Fragment
. Also, this is the recommended method proposed by Android at Communicating with the Activity
对于您的示例,在您的 DialogFragment
中,添加一个接口并注册它.
For your example, in your DialogFragment
, add an interface and register it.
public static interface OnCompleteListener {
public abstract void onComplete(String time);
}
private OnCompleteListener mListener;
// make sure the Activity implemented it
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
try {
this.mListener = (OnCompleteListener)activity;
}
catch (final ClassCastException e) {
throw new ClassCastException(activity.toString() + " must implement OnCompleteListener");
}
}
现在在你的Activity
public class MyActivity extends Activity implements MyDialogFragment.OnCompleteListener {
//...
public void onComplete(String time) {
// After the dialog fragment completes, it calls this callback.
// use the string here
}
}
现在在您的 DialogFragment
中,当用户单击 OK 按钮时,通过您的回调将该值发送回 Activity
.
Now in your DialogFragment
, when a user clicks the OK button, send that value back to the Activity
via your callback.
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
String time = Integer.toString(hourOfDay) + " : " + Integer.toString(minute);
this.mListener.onComplete(time);
}
这篇关于将字符串从对话框片段返回到活动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!