2012-03-06 53 views
1

您好我想显示在我的标签之一的对话片段,但是当我点击该按钮,它显示为

android.view错误。 WindowManager $ BadTokenException:无法添加窗口 - 令牌[email protected]是 无效;你的活动正在运行?

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

以下是代码。

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"); 
    } 

} 

回答

2

尝试使用父活动的上下文就像

(Activity(mn)).getParent() 
相关问题