2012-03-06 5 views
1

안녕하세요 내 탭 중 하나에서 대화 조각을 표시하려고하지만 난 그 버튼을 클릭하면이tabview :

android.view으로 오류를 보이고있다. WindowManager $ BadTokenException : 창을 추가 할 수 없습니다. - token [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() 
처럼 부모 활동의 컨텍스트를 사용하십시오 활동
관련 문제