如何从DialogFragment中的textView中setText()

时间:2013-07-05 01:51:49

标签: java android android-fragments android-dialog android-dialogfragment

我有一个自定义的DialogFragment,里面有几个选项。只需在对话框中向用户显示“完成”按钮,即表示他们已完成选择并恢复活动。我在对话框下面的活动上有一个textView。我的第一个想法是使用数据库(overkill)或sharedPreferences,但sharedPreferences在我的特定情况下不是一个选项。所以,我的问题是如何从没有sharedPreferences的DialogFragment中的textView上setText。感谢

2 个答案:

答案 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

当使用更“标准”的片段时,该页面也有一个例子,基本上是在活动上调用一个方法。