0

私は 4 つのタブがある Tabactivity を持っています。タブの 1 つには、ActivityGroup を介して表示される多くの子アクティビティがあります。子アクティビティの 1 つにラジオ ボタンがあります。ラジオ ボタンのいずれかをクリックすると、ダイアログ ボックスを表示する必要があります。ダイアログを表示できません。ボックス.....次のようなエラーが表示されます:

android.view.WindowManager$BadTokenException: Unable to add window -- token android.app.LocalActivityManager$LocalActivityRecord@412369a0 is not valid; is your activity running?

私のコードはここにあります:

public class BabyProducts extends ActivityGroup {

Button back,home;

RadioGroup rg_babybath,
Context context=this;
String babybath;

RadioButton rb_babybath;
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
     requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.babyproducts);

    rg_babybath=(RadioGroup)findViewById(R.id.radioGroup_babybath);

    back=(Button)findViewById(R.id.btn_back);
    home=(Button)findViewById(R.id.btn_home);
    back.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Intent activity2=new Intent(v.getContext(),Inventory.class);
            replaceContentView("activity2", activity2);

        }
    });

    home.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Intent activity2=new Intent(v.getContext(),AuditActivity.class);
            replaceContentView("activity2", activity2);

        }
    });

    rg_babybath.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(RadioGroup group, int checkedId) {
            // TODO Auto-generated method stub
            rb_babybath=(RadioButton)findViewById(checkedId);
            babybath=rb_babybath.getText().toString();
            option(babybath);


}

});
}

public void option(String bbath)
{
    if(bbath.equals("Yes")){
        final Dialog dialog=new Dialog(BabyProducts.this);
        dialog.setContentView(R.layout.popup_stock);
        dialog.setTitle("Choose");
        Button save=(Button)dialog.findViewById(R.id.save);
        Button submit=(Button)dialog.findViewById(R.id.submit);


        save.setOnClickListener(new View.OnClickListener() {

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

                dialog.dismiss();
            }

        });

        submit.setOnClickListener(new View.OnClickListener() {

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

                dialog.dismiss();
            }
        });
        dialog.show();

    }

    if(bbath.equals("No")){
        final Dialog dialog=new Dialog(BabyProducts.this);
        dialog.setContentView(R.layout.popup_reason);
        dialog.setTitle("Choose");
        Button save=(Button)dialog.findViewById(R.id.save);
        Button submit=(Button)dialog.findViewById(R.id.submit);


        save.setOnClickListener(new View.OnClickListener() {

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

                dialog.dismiss();
            }

        });

        submit.setOnClickListener(new View.OnClickListener() {

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

                dialog.dismiss();
            }
        });
        dialog.show();

    }


}

@SuppressWarnings("deprecation")
public void replaceContentView(String id, Intent newIntent)
{
    View view=getLocalActivityManager().startActivity(id, newIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView();
    this.setContentView(view);
}


}
4

3 に答える 3

0

使用してみてください:

Dialog dialog = new Dialog(getParent());
于 2013-05-15T12:05:18.070 に答える
0

考えられる問題はv.getContext()、ラジオ グループの onclick リスナーにある可能性があります。代わりにこれらのいずれかを試すかgetBaseContext()、オブジェクトgetApplicationContext()を渡してみてください。context

于 2013-05-15T11:22:00.207 に答える