首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

停用AlertDialog "OK“按钮,直到在AlertDialog视图的EditText上键入文本

基础概念

AlertDialog 是 Android 平台上用于显示对话框的类,通常包含一个或多个按钮和一个可选的 EditText。用户可以在 EditText 中输入文本,并通过按钮进行交互。

相关优势

  1. 用户友好AlertDialog 提供了一种简单的方式来与用户进行交互,特别是在需要用户输入信息时。
  2. 灵活性:可以自定义对话框的内容和行为,包括按钮、文本、图标等。

类型

AlertDialog 可以分为以下几种类型:

  • 简单对话框:包含一个标题、消息和按钮。
  • 单选对话框:包含一个标题、消息和多个单选按钮。
  • 多选对话框:包含一个标题、消息和多个复选框。
  • 自定义对话框:可以包含任何自定义视图,如 EditText

应用场景

AlertDialog 适用于以下场景:

  • 提示用户输入信息。
  • 确认用户的操作。
  • 显示警告或错误信息。

问题描述

停用 AlertDialog 的 "OK" 按钮,直到用户在 EditText 中键入文本。

原因

用户需要在 EditText 中输入文本后才能点击 "OK" 按钮,以确保输入的有效性。

解决方案

可以通过监听 EditText 的文本变化来启用或禁用 "OK" 按钮。以下是一个示例代码:

代码语言:txt
复制
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.Button;
import android.widget.EditText;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    private AlertDialog alertDialog;
    private EditText editText;
    private Button okButton;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 创建 AlertDialog
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        editText = new EditText(this);
        builder.setView(editText);
        builder.setPositiveButton("OK", null); // 初始设置为 null,稍后设置监听器
        builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.dismiss();
            }
        });

        alertDialog = builder.create();

        // 获取 OK 按钮
        okButton = alertDialog.getButton(DialogInterface.BUTTON_POSITIVE);

        // 设置 TextWatcher 监听器
        editText.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {}

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                okButton.setEnabled(!s.toString().isEmpty());
            }

            @Override
            public void afterTextChanged(Editable s) {}
        });

        // 显示 AlertDialog
        alertDialog.show();
    }
}

参考链接

AlertDialog 官方文档

通过上述代码,AlertDialog 的 "OK" 按钮会在用户输入文本之前保持禁用状态,只有在 EditText 中输入文本后才会启用。这样可以确保用户输入的有效性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android编程自定义AlertDialog样式方法详解

);//确定按钮 //取消或确定按钮监听事件处理 AlertDialog dialog = builder.create(); dialog.show(); 这样,我们就可以弹出一个我们自定义Dialog...,使用时候,只需要根据UI需求定义内容部分UI即可。...当然要实现AlertDialog背景透明等效果,我们还可以res/value/style.xml内增加以下代码: <style name="dialog" parent="@android:style...true</item </style <em>在</em>需要加入<em>alertDialog</em><em>的</em>地方加入以下语句: <em>AlertDialog</em>.Builder alertbBuilder=new <em>AlertDialog</em>.Builder...更多关于Android相关内容感兴趣<em>的</em>读者可查看本站专题:《Android开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android基本组件用法总结》、《Android<em>视图</em>

3.6K20

Android实现iPhone晃动撤销输入功能 Android仿微信摇一摇功能

很多程序中我们可能会输入长文本内容,比如短信,写便笺等,如果想一次性撤销所有的键入内容,很多手机需要一直按住退格键逐字逐句删除,稍稍麻烦,不过iPhone,有个人性化功能,当我们想要去撤销刚刚输入所有内容时候...android中,一般手机貌似没有定制这个功能,不过我们可以自己去实现这样功能,放置我们项目程序中,体现更人性化设计,思路很简单,主要是利用手机内置加速度传感器装置,其实大家一定会想到微信...“摇一摇”功能,个人觉得该功能就应该是这样实现,当我们错误输入并想撤销所有输入内容时候,可以摇晃我们设备,弹出一个自定义alertdialog,根据按钮点击事件完成相应清除操作。...首先我们自己定义一个alertdialog,自己依据个人设计写一个布局,之后代码中创建一个AlertDialog并使用LayoutInflater载入写好布局文件 AlertDialog.Builder...点击“撤销键入”,即可将文字清空! 以上就是本文全部内容,希望对大家学习有所帮助。

2K62
  • 错误操作怎么办?用他让你不再害怕!—Dialog最详解

    Dialog对话框是Android常用基础视图组件之一,本期总结了对话框常用几种样式,以及自定义视图和带动画效果对话框,打开你们IDE,赶紧跟着我们继续奋斗吧!...-3个按钮,可以有单选或者复选框对话框,可以创建大多数界面 - ProgressDialog 进度条对话框,显示一个进度或者进度条,继承自AlertDialog - DatePickerDialog...dialog.show(); } 自定义布局弹框 可以通过创建一个自定义布局,然后调用 AlertDialog.Builder对象 setView()方法将其添加到 AlertDialog...DialogFragment onCreateDialog()方法中加载自定义布局文件,并添加到 AlertDialog.Builder中,在按钮点击事件中获取用户名和密码 public class...MainActivity中拉起 Dialog按钮 xml布局 <?

    1.4K20

    安卓入门-第三章-安卓常用控件使用方式

    它主要用于界面上显示一段文本信息,比如你第1章看到“Hello world!”。下面我们就来看一看关于TextView更多用法。...可以看到,EditText中显示了一段提示性文本,然后当我们输入任何内容时,这段文本就会自动消失。  不过,随着输入内容不断增多,EditText会被不断地拉长。...最大行数为两行,这样当输入内容超过两行时,文本就会向上滚动,而EditText则不会再继续拉伸。  ...重新运行程序,EditText中输入一段内容,然后点击按钮,效果如下图所示。 ?...方法为对话框设置确定按钮点击事件(对应于确定OK按键) 调用setNegativeButton() 方法设置取消按钮点击事件(对应于Cancel按键) 最后调用show() 方法将对话框显示出来。

    1.8K20

    Android小程序实现音乐播放列表

    ,添加界面提供两个文本框和一个按钮,用于输入音乐名和歌手名,当单击“添加”按钮时,将数据插入到表中,具体代码如下: package com.example.musiclist; import android.app.Activity...R.id.ButtonAdd); b1.setOnClickListener(new OnClickListener() { public void onClick(View v) { // 获取用户输入文本信息...listView.setAdapter(adapter); //提示对话框 final AlertDialog.Builder builder = new AlertDialog.Builder...Cursor游标,然后使用SimpleCursorAdapter适配器将数据绑定到ListView控件,并在ListView控件注册单击监听器,当单击一条记录时,显示一个警告对话框提示是否删除,单击...音乐列表中单击一条记录,弹出警告对话框删除一条记录: ? 更多关于播放器内容请点击《java播放器功能》进行学习。 以上就是本文全部内容,希望对大家学习有所帮助。

    1.3K41

    信息提醒之对话框(AlertDialog + ProgressDialog)-更新中

    View.OnClickListener接口使用在视图,这一点使用时要注意。...实际,这种对话框相当于将ListView控件放在对话框上,然后ListView中添加若干简单文本()。 在这个实例中,选择后显示选中值,5S后自动关闭。 ?...由于存在“确定”按钮单击事件中需要引用AlertDialog变量,因此先使用create方法返回AlertDialog对象,然后单击事件中使用该变量 ---- 进度对话框 查看大拿总结 进度对话框通过...圆形进度条对话框进度圆圈只是一个普通动画,并没有任何表示进度功能,这种对话框一般很难估计准确时间和进度时使用 ---- 登录对话框,自定义布局 -setView 我们可以直接使用布局文件或者代码创建视图对象...AlertDialog.Builder.setView方法可以将视图对象添加到当前对话框中,使用下面的形式将一个视图对象添加到对话框中。

    4.5K10

    Android之AlertDialog基本使用

    仔细想想AlertDialog使用场景, 它并不像TextView和Button那些控件似的一般都是固定在界面上,而是某个时机才会触发出来(比如用户点击了某个按钮或者断网了)。...所以AlertDialog并不需要到布局文件中创建,而是代码中通过构造器(AlertDialog.Builder)来构造标题、图标和按钮等内容。...创建构造器AlertDialog.Builder对象; 通过构造器对象调用setTitle、setMessage等方法构造对话框标题、信息和图标等内容; 根据需要,设置正面按钮、负面按钮和中立按钮...新建一个工程,MainActivity放置不同按钮,点击按钮就会有相应对话框弹出。...:点击对话框以外区域是否让对话框消失,默认为true; setPositiveButton:设置正面按钮,表示“积极”、“确认”意思,第一个参数为按钮显示文字,下同; setNegativeButton

    1.5K20

    Android界面组件基本用法

    1.文本框(TextView)和编辑框(EditText文本框(TextView)不允许用户编辑文本内容,而编辑框(EditText)允许用户编辑文本内容 2.按钮(Button)和图片按钮...重要是,background是底层图片资源,src是覆盖background上面的资源,他们可以叠加使用,实现选中效果。...每个列表项是已勾选列表项 simple_list_item_multiple_choice 每个列表项是带多选框文本 simple_list_item_single_choice 每个列表项是带多单选按钮文本...15.使用AlertDialog 创建AlertDialog.Builder对象,该对象是AlertDialog创建器 调用AlertDialog.Builder方法为对话框设置图标、标题等 调用AlertDialog.Builder...create()方法创建AlertDialog对话框 调用AlertDialogshow()方法显示对话框 AlertDialog ad = new AlertDialog.Builder(MainActivity.this

    1.7K20

    Android八种对话框实现代码示例

    1.写在前面 Android提供了丰富 Dialog 函数,本文介绍最常用8种对话框使用方法,包括普通(包含提示消息和按钮)、列表、单选、多选、等待、进度条、编辑、自定义等多种形式,将在第2部分介绍.../* @setNeutralButton 设置中间按钮 * 若只需一个按钮,仅设置 setPositiveButton 即可 */ private void showMultiBtnDialog...editText = new EditText(MainActivity.this); AlertDialog.Builder inputDialog = new AlertDialog.Builder...EditText edit_text = (EditText) dialogView.findViewById(R.id.edit_text); Toast.makeText...和show函数,可以Dialog显示前实现必要设置 * 例如初始化列表、默认选项等 * @create 第一次创建时调用 * @show 每次显示时调用 */ private void showListDialog

    1.2K41

    【Android从零单排系列十五】《Android视图控件——AlertDialog

    前言 小伙伴们,在上文中我们介绍了Android视图组件RatingBar,本文我们继续盘点,介绍一下视图控件AlertDialog。...("Message"); // 设置对话框消息内容 builder.setIcon(R.drawable.icon); // 设置对话框图标 builder.setPositiveButton("OK...自定义布局相关方法: setView(View view):设置自定义布局视图,可以将自定义布局添加到对话框中显示。...创建和显示对话框: create():使用设置属性和配置创建AlertDialog实例。 show():展示对话框,将AlertDialog显示屏幕。...四 总结 AlertDialog是一种常用对话框,可用于提示信息、确认操作或让用户做出选择。根据需求,构建器中设置对话框标题、消息内容、图标等属性,并通过按钮点击监听器处理用户响应。

    15910

    手机卫士黑名单功能(ListView结合SQLite增删改)

    修改界面,顶部横条增加一个添加按钮,点击打开一个自定义对话框,输入电话号码和拦截模式保存到数据库 自定义对话框看这篇http://www.cnblogs.com/taoshihan/p/5370378...添加记录 调用Builder对象show()方法,获取AlertDialog对象 调用View.inflate()方法,将布局文件转成View对象 调用View对象findViewById()方法,...add()方法,添加一条数据,参数:0(第一个),数据 调用ListAdapter对象notifyDataSetChanged()方法,通知数据更新 删除记录 条目布局文件中,右侧放置一个垃圾桶小图标...,上下居中,父控件右边 安卓系统点击事件和js点击事件很相似, 参考这篇:http://www.cnblogs.com/taoshihan/p/5438729.html 获取到删除按钮Button对象...调用Button对象,设置点击事件 获取AlertDialog.Builder对象,展示是否确认删除对话框 调用AlertDialog.Builder对象,设置确认按钮和取消按钮,注意设置点击事件OnClickListener

    88630

    Android开发必知--几种不同对话框实现

    开发过程中,与用户交互式免不了会用到对话框以实现更好用户体验,所以掌握几种对话框实现方法还是非常有必要。在看具体实例之前先对AlertDialog做一个简单介绍。...AlertDialog是功能最丰富、实践应用最广对话框,它可以生成各种内容对话框。但实际AlertDialog生成对话框总体可分为以下4个区域:图标区、标题区、内容区、按钮区。...5、调用AlertDialog.BuildersetPositiveButton()、setNegativeButton()或setNeutralButton()方法添加多个按钮。   ...其中,第4步设置对话框内容,这里有6种方法来指定:   ·setMessage():设置对话框内容为简单文本内容。   ·setItems():设置对话框内容为简单列表项。   ...因此Android对话一共可以生成三个按钮对话框。 2、简单列表项对话框 ?

    2.4K10
    领券