单击“btn Charge”时无法显示布局sharzh,单击“btnUserInfo”时会显示layout_user_info(对话框)

时间:2014-11-05 08:52:59

标签: android dialog

我在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;
   }

1 个答案:

答案 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;

}

相关问题