如何使Android Activity看起来像对话框一样?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (29)

我正试图打开窗口小部件点击对话框。我已经解决了点击时开始活动的问题android:theme="@android:style/Theme.Dialog"。不幸的是,我无法达到对话的相同外观。

你可以看到保持屏幕按下的小部件对话框。

正如你所看到的,有一些不同之处:列表项的颜色,文本的颜色和列表项分隔符。是否有预定义的主题/风格来获得标准对话框的相同外观?如果不是,那么要达到这一结果需要采取哪些步骤?

提问于
用户回答回答于

为什么不使用具有透明背景布局的“传统”主要活动?

并从它调用一个标准的对话框?

......如果我正确地理解了你的话,那会以非常简单的方式制造出诡计,不是吗?

用户回答回答于

你可以像这样动态地创建对话框:

        Context mContext = this;
        Dialog dialog = new Dialog(mContext);

        dialog.setContentView(R.layout.data_dialog);
        dialog.setTitle("Your title");

        AlertDialog.Builder builder;
        AlertDialog alertDialog;

        LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(LAYOUT_INFLATER_SERVICE);
        View layout = inflater.inflate(R.layout.data_dialog,
                (ViewGroup) findViewById(R.id.AbsoluteLayout01));

        builder = new AlertDialog.Builder(mContext);
        builder.setView(layout);
        alertDialog = builder.create();
        alertDialog.show();

        final EditText txtUsername = (EditText) layout.findViewById(R.id.txtUsername);

        final AlertDialog thisDialog = alertDialog;

         Button btnSave = (Button) layout.findViewById(R.id.btnSave);
         btnSave.setOnClickListener(new View.OnClickListener() {
             public void onClick(View v) {

                String strtxtUsername = txtUsername.getText().toString();

                //do something...

             }
         });                

扫码关注云+社区