gpt4 book ai didi

android - 如何为 Sherlock fragment 创建对话 fragment ?

转载 作者:行者123 更新时间:2023-11-29 16:06:16 24 4
gpt4 key购买 nike

在我的应用程序中,我使用 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com