Android 对话框未显示在活动组中
我有一个活动 我有4个标签。其中一个选项卡通过ActivityGroup显示了多个子活动。我在其中一个子活动中有单选按钮。单击任何单选按钮,我需要显示一个对话框…我无法显示对话框…我收到如下错误:Android 对话框未显示在活动组中,android,dialog,radio-button,Android,Dialog,Radio Button,我有一个活动 我有4个标签。其中一个选项卡通过ActivityGroup显示了多个子活动。我在其中一个子活动中有单选按钮。单击任何单选按钮,我需要显示一个对话框…我无法显示对话框…我收到如下错误: android.view.WindowManager$BadTokenException: Unable to add window -- token android.app.LocalActivityManager$LocalActivityRecord@412369a0 is not valid;
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);
}
}
可能的问题是收音机组onclick listener中的
v.getContext()
。请尝试其中任何一种方法,而不要使用getBaseContext()
或getApplicationContext()
或尝试传递context
对象。只需尝试使用:
Dialog dialog = new Dialog(getParent());
不,不行!还是一样吗error@shivani请检查onCheckedChanged中babybath的值(即,当您调用方法选项时)而不是在if write equalIgnoreCase中写equals。@ChiragJain如果我在oncreate方法中而不是在options方法中使用我的全部代码,它会工作吗???我认为你应该只检查值bBath,因为如果你得到的不是Yes或No,那么你的对话框将不会出现。@ChiragJain它只有Yes或No值……没有其他值值..我通过显示toast Message来检查,当问题是针对应用程序上下文时,dialog.show()为什么会显示此错误??。我尝试了getBaseContext()和getApplicationcontext()。。。不工作..异常似乎与视图的上下文相关,因为它是一个活动组,并且您没有在代码中使用
上下文
对象。尝试通过将视图或活动的每个上下文替换为context
对象来更改代码。
Dialog dialog = new Dialog(getParent());