【发布时间】:2014-12-18 10:14:33
【问题描述】:
我有一个正在工作的 DialogFragment,它使用内部类对某些对象、设置菜单图标等做一堆事情。当我去 Android Studio 时,我意识到这是不正确的,我一直在尝试改变内部类是静态的。
在这样做时,我现在尝试使用 onCreateDialog,按照Google docs,“doPositiveClick”和“doNegativeClick”,以便调用 MainActivity 可以对这些对象执行工作,而不是片段执行它。
现在让我感到困惑的是,如何在片段中设置布局 - 我可以输入标题、消息和按钮:
return new AlertDialog.Builder(getActivity())
.setTitle(R.string.alert_title)
.setMessage(R.string.alert_message)
.setPositiveButton(R.string.set,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
((MainActivity)getActivity()).doPositiveClick();
}
}
)
.setNegativeButton(R.string.cancel,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
((MainActivity)getActivity()).doNegativeClick();
}
}
)
但之前我正在做这样的布局:
final EditText input = new EditText(MainActivity.this);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(20, 20);
input.setText("5");
input.setLayoutParams(lp);
input.setRawInputType(Configuration.KEYBOARD_QWERTY);
问题是,这在 onCreateDialog 哪里? Google 文档展示了如何在对话框 textView 上设置文本,但它位于 onCreateView() 中。
我的困惑是谷歌文档没有同时做这两个,即它没有显示如何同时设置自定义元素,并在调用 MainActivity 中设置正/负点击 - 或者如果是这样,我很抱歉我现在看不到。
那么任何人都可以让我更清楚,使用上面的 onCreateDialog,我怎样才能拥有一个 editText 字段,其默认值接受用户输入,然后将该输入返回给 doPositiveClick() 进行处理。
【问题讨论】:
标签: android android-dialogfragment