我有一个自定义的DialogFragment,里面有几个选项。只需在对话框中向用户显示“完成”按钮,即表示他们已完成选择并恢复活动。我在对话框下面的活动上有一个textView。我的第一个想法是使用数据库(overkill)或sharedPreferences,但sharedPreferences在我的特定情况下不是一个选项。所以,我的问题是如何从没有sharedPreferences的DialogFragment中的textView上setText。感谢
答案 0 :(得分:1)
这可以通过Interface
:
在DialogFragment
课程中:
public interface OnDoneClickListener {
void onDoneClicked() {}
}
@Override
public void onAttach(Activity activity) {
// TODO Auto-generated method stub
super.onAttach(activity);
try {
mCallback = (OnDoneClickListener) activity;
} catch (ClassCastException e) {
Log.d("Error", "activity must implement OnDoneClickListener");
}
}
现在只需将mCallback.onDoneClicked()
放入您的愿望onClick
活动中。
返回需要实施Activity
,
OnDoneClickListener
@Override
public void onDoneClicked() {
tv.setText("Done Clicked!!");
}
答案 1 :(得分:0)
如果您正在使用AlertDialog(最简单),那么您只需要提供一个onClickListener:
http://developer.android.com/reference/android/app/DialogFragment.html#AlertDialog
当使用更“标准”的片段时,该页面也有一个例子,基本上是在活动上调用一个方法。