我在Android应用程序上工作。我现在有一个应用程序有2 button
用于"用户信息"和"充电",点击每个按钮时必须显示自己dialog
。对话框的内容是之前设计的2个布局,并为contentView
设置。我的问题是通过单击每个按钮只显示dialog_user_info。实际上必须在点击btnCharge
时显示layout_sharzh,并在点击btnUserInfo
时显示layout_user_info。我该如何解决?
这是我的代码:
(此外,我在之后的活动之上写了final int dialog_charge=1 , dialog_user_info=2;
和private Dialog dialog=null;
public class MainActivity extends Activity
)
btnCharge.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showDialog(dialog_charge,null);
}
});
btnUserInfo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showDialog(dialog_user_info,null);
}
});
这是onCreateDialog
方法:
protected Dialog onCreateDialog(int id )
{
switch(id)
{
case dialog_charge :
dialog=new Dialog(this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
LayoutInflater inflater = LayoutInflater.from(this);
View dialogview = inflater.inflate(R.layout.layout_sharzh, null);
// now pass dialogview to setView of Dialog
dialog.setContentView(dialogview);
btnSave=(Button)dialogview.findViewById(R.id.btnSave);
btnReturn=(Button)dialogview.findViewById(R.id.btnReturn);
btnReturn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
dialog.cancel();
}
});
btnSave.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this,"success",Toast.LENGTH_SHORT).show();
}
});
case dialog_user_info:
dialog=new Dialog(this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
LayoutInflater inflater1 = LayoutInflater.from(this);
dialogview = inflater1.inflate(R.layout.layout_user_info, null);
// now pass dialogview to setView of Dialog
dialog.setContentView(dialogview);
dialog.setCanceledOnTouchOutside(true);
}
return dialog;
}
答案 0 :(得分:0)
我现在找到了我的解决方案。我必须在每个Break;
语句的末尾添加Case
。
protected Dialog onCreateDialog(int id)
{
switch(id)
{
case dialog_charge :
dialog=new Dialog(this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
LayoutInflater inflater = LayoutInflater.from(this);
View dialogview = inflater.inflate(R.layout.layout_sharzh, null);
// now pass dialogview to setView of Dialog
dialog.setContentView(dialogview);
btnSave=(Button)dialogview.findViewById(R.id.btnSave);
btnReturn=(Button)dialogview.findViewById(R.id.btnReturn);
btnReturn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
dialog.cancel();
}
});
btnSave.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this,"success",Toast.LENGTH_SHORT).show();
}
});
break;
case dialog_user_info:
dialog=new Dialog(this);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
LayoutInflater inflater1 = LayoutInflater.from(this);
dialogview = inflater1.inflate(R.layout.layout_user_info, null);
// now pass dialogview to setView of Dialog
dialog.setContentView(dialogview);
dialog.setCanceledOnTouchOutside(true);
break;
}
return dialog;
}