Android:如何创建一个透明的以对话框为主题的 Activity

标签 android android-activity dialog

我最初的目标是模态对话框,但你知道,Android 不支持这种类型的对话框。或者,构建一个以对话为主题的 Activity 可能会奏效。
这是代码,

public class DialogActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {

    setTheme(android.R.style.Theme_Dialog);

    super.onCreate(savedInstanceState);

    requestWindowFeature (Window.FEATURE_NO_TITLE);

    Button yesBtn = new Button(this);
    yesBtn.setText("Yes");
    yesBtn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            DialogActivity.this.finish();

        }

    });

    this.setContentView(yesBtn);
}

但是,背景总是黑色的,这真的很困惑。人们遇到了同样的问题,
http://code.google.com/p/android/issues/detail?id=4394
我只是想让它看起来更像用户的对话。那么,如何让这个 DialogActivity 透明且不覆盖底层屏幕呢?
谢谢。

这就是我创建样式的方式

<style name="CustomDialogTheme" parent="android:Theme.Dialog">
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowFullscreen">false</item>
</style>

最佳答案

你可以通过这个创建一个透明的对话框。

public class DialogActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        final AlertDialog alertDialog = new AlertDialog.Builder(this).create();
        alertDialog.setTitle(" ");
        alertDialog.setMessage("");
        alertDialog.setIcon(R.drawable.icon);
        alertDialog.setButton("Accept", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {                
            }
        });
        alertDialog.setButton2("Deny", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
            }
        });
        alertDialog.show();
    }
}

在此之后,只需在 AndroidManifest.xml 中添加一行,您可以在其中定义 list 中的 Activity 。

android:theme="@android:style/Theme.Translucent.NoTitleBar"

关于Android:如何创建一个透明的以对话框为主题的 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6070505/

相关文章:

javascript - Android 平板电脑上的单页 Web 应用程序高度问题

android - 通过全局变量通信服务和Activity

安卓 : Open google play dialog from my app

java - Swt 文件对话框选择了太多文件?

javascript - 如何取消 JavaScript 对话?

android - 后台发短信到自己的手机号,短信列表不显示已发短信

android - 应用在Nexus 10上崩溃,但在Galaxy Tab 3上却没有崩溃

java - Android - 在两个 Activity 之间传递数据得到 NullPointerException

android - Twitter4j Stream 获取自己的个人资料推文

java - 从 Activity 传递给非 Activity 构造函数的上下文实例是什么?