作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的应用程序中,我使用 ActionBArSherlock 来创建 fragment 。主要 Activity 是一个 SherlockFragmentActivity,我从中创建 fragment 。这些 fragment 在它们自己的类文件中,它们扩展了 SherlockFragment。我需要在 fragment 中显示一个警报对话框,但我无法这样做。
我用谷歌搜索了一下,但没有找到。我检查了与 ActionBarSherlock 库一起提供的示例。他们展示了如何在 FragmentActivity 中而不是在 Fragment 中创建对话框。我尝试在 fragment 中实现相同的功能,但无法使用 getSupportFragmentManager()
。它对于 Fragment 类型是未定义的。
public class Fragment1 extends SherlockFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
rootView = inflater.inflate(R.layout.fragment2, container, false);
return rootView;
}
public void someFunction(){
if(somethingHappens)
showDialog();
}
//the code that follows is from the sample in ActionBarSherlock
void showDialog() {
DialogFragment newFragment = MyAlertDialogFragment.newInstance(
R.string.alert_dialog_two_buttons_title);
newFragment.show(getSupportFragmentManager(), "dialog"); //getSupportFragmentManager() is undefined for the type Fragment
}
public void doPositiveClick() {
// Do stuff here.
Log.i("FragmentAlertDialog", "Positive click!");
}
public void doNegativeClick() {
// Do stuff here.
Log.i("FragmentAlertDialog", "Negative click!");
}
public static class MyAlertDialogFragment extends SherlockDialogFragment {
public static MyAlertDialogFragment newInstance(int title) {
MyAlertDialogFragment frag = new MyAlertDialogFragment();
Bundle args = new Bundle();
args.putInt("title", title);
frag.setArguments(args);
return frag;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
int title = getArguments().getInt("title");
return new AlertDialog.Builder(getActivity())
.setIcon(R.drawable.alert_dialog_icon)
.setTitle(title)
.setPositiveButton(R.string.alert_dialog_ok,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
((FragmentAlertDialogSupport)getActivity()).doPositiveClick(); // Cannot cast from FragmentActivity to fragment
}
}
)
.setNegativeButton(R.string.alert_dialog_cancel,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
((FragmentAlertDialogSupport)getActivity()).doNegativeClick(); //Cannot cast from FragmentActivity to fragment
}
}
)
.create();
}
}
你能告诉我如何在 Sherlock Fragment 中显示对话吗?
最佳答案
在 SherlockFragment 中你可以调用
getSherlockActivity().getSupportFragmentManager();
让您的 fragment 管理器显示对话框 fragment 。
关于android - 如何为 Sherlock fragment 创建对话 fragment ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18060233/
我是一名优秀的程序员,十分优秀!