【问题标题】:tabview with dialog fragment android.view.WindowManager$BadTokenException:带有对话框片段 android.view.WindowManager$BadTokenException 的 tabview:
【发布时间】:2012-03-06 13:09:54
【问题描述】:

您好,我正在尝试在我的一个选项卡中显示一个对话框片段,但是当我单击该按钮时,它显示错误为

android.view.WindowManager$BadTokenException: 无法添加窗口 -- 令牌 android.app.LocalActivityManager$LocalActivityRecord@4137eb30 是 无效;您的活动正在进行吗?

但相同的代码在正常活动中工作(意味着没有标签)。我尝试了不同的解决方案,但都没有奏效。

下面是代码。

public class MyDialogFragment extends DialogFragment {
    static Context mn;
    static Activity ji;

    static MyDialogFragment newInstance() {

        String title = "is this  success";

        MyDialogFragment f = new MyDialogFragment();
        Bundle args = new Bundle();
        args.putString("title", title);

        f.setArguments(args);
        return f;
    }

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        String title = getArguments().getString("title");
        Dialog myDialog = new AlertDialog.Builder(getActivity()).setIcon(R.drawable.ic_launcher).setTitle(title)
                .setPositiveButton("OK", new DialogInterface.OnClickListener() {

                    public void onClick(DialogInterface dialog, int which) {
                        ((Code) getActivity()).okClicked();
                    }
                }).setNegativeButton("Cancel", new DialogInterface.OnClickListener() {

                    public void onClick(DialogInterface dialog, int which) {
                    }
                }).create();

        return myDialog;
    }
}

活动

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        mthird.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {
                // TODO Auto-generated method stub

                OpenDialog();
            }

        });

    }

    void OpenDialog() {
        MyDialogFragment myDialogFragment = MyDialogFragment.newInstance();
        myDialogFragment.show(getFragmentManager(), "myDialogFragment");
        System.out.println("cancelbutton");
    }

    public void okClicked() {
        String textok = " Title";
        MySecondDialog myDialogFragment = MySecondDialog.newInstance(textok);
        myDialogFragment.show(getFragmentManager(), "myDialog");
    }

    public void cancelClicked() {
        String textcancel = "Reason";
        MySecondDialog myDialogFragment = MySecondDialog.newInstance(textcancel);
        myDialogFragment.show(getFragmentManager(), "myDialogFragment");
    }

}

【问题讨论】:

    标签: android android-fragments android-context


    【解决方案1】:

    尝试使用您的父活动上下文 Like

    (Activity(mn)).getParent()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-26
      • 2017-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多