2012-03-06 90 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() 
相關問題