使Android Activity看起来像对话框

时间:2010-03-06 23:28:09

标签: android user-interface android-activity

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

这是结果:

Dialog from widget

相反,我想达到这个结果(当然除了按钮):

Desired dialog from widget

(你可以看到保持屏幕被按下的小工具对话框)

正如您所看到的,存在一些差异:列表项的颜色,文本的颜色和列表项分隔符。是否有预定义的主题/样式来获得标准对话框的相同外观?如果没有,达到该结果需要遵循哪些步骤?

我已经看到FoxyRing提供的小部件具有我想要的行为。

3 个答案:

答案 0 :(得分:22)

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

并从中调用标准对话框?

......好吧,如果我理解正确的话,这会以一种非常简单的方式制作技巧,不是吗?

答案 1 :(得分:3)

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

        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...

             }
         });                

要关闭对话框,请致电thisDialog.dismiss();

该样式看起来像常规的Theme.Light.NoTitleBar,带有带有Icon和Title-Text的ListView。

希望有所帮助!

答案 2 :(得分:0)

实际上有一种比我在下面建议的更简单的方法 看一下: https://developer.android.com/guide/topics/ui/dialogs.html 标题为“添加列表”。