标签: android-alertdialog

单击按钮时如何防止对话框关闭

我有一个EditText输入对话框.当我单击对话框上的"是"按钮时,它将验证输入,然后关闭对话框.但是,如果输入错误,我想保持在同一个对话框中.每次无论输入是什么,当我点击"否"按钮时,对话框应自动关闭.我怎么能禁用它?顺便说一句,我已经使用PositiveButton和NegativeButton作为对话框上的按钮.

android dialog android-alertdialog android-dialog android-dialogfragment

704
推荐指数
9
解决办法
25万
查看次数

使用getApplication()作为上下文抛出"无法添加窗口 - 令牌null不适用于应用程序"的对话框

我的Activity正在尝试创建一个AlertDialog,它需要一个Context作为参数.如果我使用,这可以按预期工作:

AlertDialog.Builder builder = new AlertDialog.Builder(this);
Run Code Online (Sandbox Code Playgroud)

但是,我很谨慎地使用"this"作为上下文,因为当Activity被销毁并重新创建甚至在屏幕旋转之类的简单事件时,可能会发生内存泄漏.来自Android开发者博客上的相关帖子:

有两种简单的方法可以避免与上下文相关的内存泄漏.最明显的一个是避免在其自身范围之外逃避上下文.上面的例子显示了静态引用的情况,但内部类及其对外部类的隐式引用可能同样危险.第二种解决方案是使用Application上下文.只要您的应用程序处于活动状态并且不依赖于活动生命周期,此上下文就会存在.如果您计划保留需要上下文的长期对象,请记住应用程序对象.您可以通过调用Context.getApplicationContext()或Activity.getApplication()轻松获取它.

但是对于这AlertDialog()两者来说,getApplicationContext()或者getApplication()作为一个Context是可接受的,因为它抛出异常:

"无法添加窗口 - 令牌null不适用于应用程序"

每引用:1,2,3,等等.

那么,这真的应该被视为一个"错误",因为我们被正式建议使用Activity.getApplication(),但它没有宣传的功能吗?

吉姆

android builder android-context android-alertdialog

652
推荐指数
19
解决办法
36万
查看次数

如何在Android上显示是/否对话框?

是的,我知道有AlertDialog.Builder,但我很震惊地知道在Android中显示对话框有多困难(好吧,至少不是程序员友好).

我曾经是一名.NET开发人员,我想知道是否有以下的Android相当于?

if (MessageBox.Show("Sure?", "", MessageBoxButtons.YesNo) == DialogResult.Yes){
    // Do something...
}
Run Code Online (Sandbox Code Playgroud)

android android-alertdialog

345
推荐指数
11
解决办法
28万
查看次数

如何在Android警报对话框中显示列表视图?

在Android应用程序中,我想在AlertDialog中显示自定义列表视图.

我怎样才能做到这一点?

android android-alertdialog

275
推荐指数
7
解决办法
29万
查看次数

Android AlertDialog单键

我想要一个AlertDialog构建器,它只有一个按钮,表示OK或Done或者其他东西,而不是默认的yes和no.可以使用标准的AlertDialog完成,还是我必须使用其他东西?

android builder button android-alertdialog

159
推荐指数
4
解决办法
14万
查看次数

如何使用appCompat 22.1及更高版本的新AlertDialog并设置其样式

我正在尝试从默认的android迁移AlertDialog到appCompat-22.1中包含的新的android 到目前为止我了解你只需导入android.support.v7.app.AlertDialog包以便使用它.

但我怎么样呢呢?例如,更改正/负按钮颜色,标题颜色,消息颜色和背景颜色?

android android-appcompat android-alertdialog android-support-library

149
推荐指数
4
解决办法
13万
查看次数

Android简单警报对话框

我需要向点击我的Android应用程序上的按钮的用户显示一条短信,在IOS上我只需要创建一个简单易用的AlertView,但是我正在努力,因为解决方案似乎难以实现x10倍.我看到我需要使用DialogFragment,但我无法理解如何使其工作,有人可以解释一下吗?此外,我的解决方案是正确的还是更容易向用户显示简单的短信?

android dialog android-alertdialog

132
推荐指数
3
解决办法
25万
查看次数

如何在android 5中更改默认对话框按钮文本颜色

我的应用程序中有很多警报对话框.这是默认布局,但我在对话框中添加正负按钮.因此按钮获得Android 5(绿色)的默认文本颜色.我试图改变它但没有成功.知道如何改变文字颜色吗?

My Custom对话框:

public class MyCustomDialog extends AlertDialog.Builder {

    public MyCustomDialog(Context context,String title,String message) {
        super(context);

        LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
        View viewDialog = inflater.inflate(R.layout.dialog_simple, null, false);

        TextView titleTextView = (TextView)viewDialog.findViewById(R.id.title);
        titleTextView.setText(title);
        TextView messageTextView = (TextView)viewDialog.findViewById(R.id.message);
        messageTextView.setText(message);

        this.setCancelable(false);

        this.setView(viewDialog);

    } }
Run Code Online (Sandbox Code Playgroud)

创建对话框:

MyCustomDialog builder = new MyCustomDialog(getActivity(), "Try Again", errorMessage);
builder.setNegativeButton("OK", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialogInterface, int i) {
                            ...
                        }
}).show();
Run Code Online (Sandbox Code Playgroud)

negativeButton是一个默认的对话框按钮,采用Android 5 Lollipop的默认绿色.

非常感谢

带绿色按钮的自定义对话框

android textcolor android-layout android-alertdialog android-5.0-lollipop

127
推荐指数
12
解决办法
12万
查看次数

如何在Android警报对话框中添加第三个按钮?

API说警报对话框可以有一个,两个或三个按钮,但SDK只允许正面和负面按钮.那怎么可以添加第三个按钮?

android android-alertdialog android-dialog

113
推荐指数
5
解决办法
8万
查看次数

"避免传递null作为视图根"警告在膨胀视图以供AlertDialog使用时

Avoid passing null as the view root当用nullas 膨胀视图时,我得到了lint警告parent,例如:

LayoutInflater.from(context).inflate(R.layout.dialog_edit, null);
Run Code Online (Sandbox Code Playgroud)

但是,视图是用作一个内容AlertDialog,使用setViewon AlertDialog.Builder,所以我不知道应该传递什么parent.

parent在这种情况下你认为应该是什么?

android layout-inflater android-alertdialog

111
推荐指数
6
解决办法
4万
查看次数