从Activity启动DialogFragment

6

我现在正在使用IntelliJ学习Android编程,遇到了一点问题。

我有一个Activity,看起来像这样:

public class example2 extends Activity {
    ...some code...
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.optExit:
                finish();
                return true;
            case R.id.optSettings:
                Intent sintent = new Intent(this, settings.class);
                startActivity(esintent);
                return true;
            case R.id.optAbout:
                //need to start the fragmentdialog

        }
        return true;
    }
    ...some code...
}

这是我的DialogFragment的样子。
public class about extends DialogFragment {

    public Dialog onCreateDialog(Bundle savedInstanceState) {
        AlertDialog.Builder b = new AlertDialog.Builder(getActivity());
        b.setTitle("About");
        b.setMessage("some text");
        b.setCancelable(false);
        b.setPositiveButton("OK", null);
        return b.create();
    }
}

我试过几乎所有方法了,包括创建新实例并启动该方法,使用FragmentManager,但我无法使用它。我该怎么办?
2个回答

12

使用“About”而不是“about”进行批准的命名。

new About().show(getSupportFragmentManager(),"about");

1
那也不行,我无法访问这个getSupportFragmentManager()方法,而且我也没有android.support.v4.app包... - Markus
2
很好地使用getFragmentManager() @Markus - Elltz

0

只需使用Activity Fragment Manager,即 getSupportFragmentManager()。这将返回此控制器的FragmentManager。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接