EditTextPreference 禁用按钮?

2024-02-18

我想要一个 EditTextPreference,如果 EditText 字段中没有文本,它将禁用“确定”按钮。我创建了一个自定义 EditTextPreference 类,并且能够获取 EditText 对象并设置 TextWatcher,但我找不到禁用该按钮的方法。看起来我只是无权访问对话框中的“确定”和“取消”按钮。

有人知道如何访问这些按钮或做我想做的事情吗?

唯一的选择是尝试从头开始创建一个看起来像并模仿 EditTextPreference 的自定义对话框。


这是一个代码示例,根据是否启用/禁用按钮onCheckValue函数返回true or false.

public class ValidatedEditTextPreference extends EditTextPreference
{
    public ValidatedEditTextPreference(Context ctx, AttributeSet attrs, int defStyle)
    {
        super(ctx, attrs, defStyle);        
    }

    public ValidatedEditTextPreference(Context ctx, AttributeSet attrs)
    {
        super(ctx, attrs);                
    }

    private class EditTextWatcher implements TextWatcher
    {    
        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count){}

        @Override
        public void beforeTextChanged(CharSequence s, int start, int before, int count){}

        @Override
        public void afterTextChanged(Editable s)
        {        
            onEditTextChanged();
        }
    }
    EditTextWatcher m_watcher = new EditTextWatcher();

    /**
     * Return true in order to enable positive button or false to disable it.
     */
    protected boolean onCheckValue(String value)
    {        
        return Strings.hasValue(value);
    }

    protected void onEditTextChanged()
    {
        boolean enable = onCheckValue(getEditText().getText().toString());
        Dialog dlg = getDialog();
        if(dlg instanceof AlertDialog)
        {
            AlertDialog alertDlg = (AlertDialog)dlg;
            Button btn = alertDlg.getButton(AlertDialog.BUTTON_POSITIVE);
            btn.setEnabled(enable);                
        }
    }

    @Override
    protected void showDialog(Bundle state)
    {
        super.showDialog(state);

        getEditText().removeTextChangedListener(m_watcher);
        getEditText().addTextChangedListener(m_watcher);
        onEditTextChanged();
    }    
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

EditTextPreference 禁用按钮? 的相关文章

  • 使用 Android 前台服务为 MediaPlayer 创建通知

    问题就在这里 我目前正在开发一个应用程序 该应用程序必须提供 A 广播播放器 来自 URL 的 AAC 直播 还有一个播客播放器 来自 URL 的 MP3 流 该应用程序必须能够在后台运行 Android 服务 并通过以下方式向用户公开持续
  • Android - 如何一次只允许播放一个 MediaPlayer 实例?

    我正在尝试创建一个简单的 Sound board Android 应用程序 使用 ListView 项目作为按钮 顺便说一句 我是一个新手程序员 我的想法是 我按下一个按钮 就会播放一个特定的声音文件 如果我在播放声音时按下任何按钮 它应该
  • Android第一次动画不流畅

    我正在尝试一个动画将 imageView 从屏幕底部滑动到屏幕中心 但是当我第一次执行此动画时 它不平滑 但当第二次执行动画时 它是正常且平滑的 我几乎尝试了所有方法 但无法解决我的问题 这是我的动画文件
  • 在自定义对象中创建时粘性服务不会重新启动

    我有一个具有绑定服务的单例对象 我希望它重新启动 当我从启动器启动应用程序时 单例对象将初始化并绑定到这个现有的服务实例 以下是在单例中创建和绑定服务的代码 public class MyState private static MySta
  • 无法在自定义 AOSP 上安装 Google Play 中的某些应用程序:项目不可用。理由:9

    我在尝试从 Google Play 安装某些应用程序时收到以下错误 LibraryUtils isAvailable not available restriction 9 DocUtils getAvailabilityRestricti
  • Android Studio 在编译时未检测到支持库

    由于 Android Studio 将成为 Android 开发的默认 IDE 因此我决定将现有项目迁移到 Android studio 中 项目结构似乎不同 我的项目中的文件夹层次结构如下 Complete Project gt idea
  • Android 原理图内容提供程序库配置?

    Jake Wharton 在最近的一次演讲中提到了这个库 它看起来是避免大量样板文件的好方法 所以我尝试了一下 但没有任何成功 https github com SimonVT schematic https github com Simo
  • OnClick 事件中的 finish() 如何工作?

    我有一个Activity一键退出Activity 通过layout xml我必须设置OnClick事件至cmd exit调用 this finish 效果很好 public void cmd exit View editLayout thi
  • 在 Jetpack Compose 中启动动画矢量 Drawable

    我有一个动画矢量可绘制R drawable my anim 我想在 Jetpack Compose 中展示并开始 可绘制对象显示 渲染正确 但动画未启动 这是撰写视图 Composable fun SplashView Surface mo
  • 从 android 简单上传到 S3

    我在网上搜索了从 android 上传简单文件到 s3 的方法 但找不到任何有效的方法 我认为这是因为缺乏具体步骤 1 https mobile awsblog com post Tx1V588RKX5XPQB TransferManage
  • Android构建apk:控制MANIFEST.MF

    Android 构建 APK 假设一个 apk 包含一个库 jar 例如 foo jar 该库具有 META INF MANIFEST MF 这对于它的运行很重要 但在APK中有一个包含签名数据的MANIFEST MF 并且lib jar
  • Android 设备上的静默安装

    我已经接受了一段时间了 在 Android 上静默安装应用程序是不可能的 也就是说 让程序安装捆绑为 APK 的应用程序 而不提供标准操作系统安装提示并完成应用程序安装程序活动 但现在我已经拿到了 Appbrain 快速网络安装程序的副本
  • 如何将设备连接到Eclipse?

    我无法解决这个简单的问题 我正在尝试通过 USB 电缆将我的设备连接到 Eclipse 在我的 PC 上 我已经安装了 Eclipse 和 Android SDK 并且在模拟器上运行该程序运行良好 我已在我的电脑上下载并安装了 Samsun
  • 在 Android 上按下电源按钮时,如何防止先调用 onDestroy() 再调用 onCreate()

    我正在记录每个 onCreate 和 onDestroy 调用 我发现 一旦我单击 Android 上的电源按钮 以及模拟器上的电源按钮 我的活动中就会拨打电话 gt onDestroy gt onCreate 这会杀死我的游戏 然后立即从
  • 通过 ADB 拔出设备:“找不到服务”

    我必须测试我的应用程序在打瞌睡模式下的行为 根据文档 https developer android com training monitoring device state doze standby html testing doze 我
  • 为什么我的单选按钮不起作用?

    我正在 Visual C 2005 中开发 MFC 对话框应用程序 我的单选按钮是 m Small m Medium 和 m Large 它们都没有在我的 m Summary 编辑框中显示应有的内容 可能出什么问题了 这是我的代码 Pizz
  • Android中webview的截图方法

    我在 webview 中的 html5 canvas 上画了一些线 并尝试使用下面的代码截取 webview 的屏幕截图 WebView webView WebView findViewById R id webview webView s
  • 为什么Android的ImageReader类这么慢?

    我尝试了适用于 Android 3 4 1 的全新 OpenCVJavaCamera2View但它太慢了 仅显示相机视图约 15 fps 当我尝试较旧的JavaCameraView相反 它给了我很好的结果 30fps 这是我相机的极限 我想
  • 在 Android 中,如何将字符串从 Activity 传递到 Service?

    任何人都可以告诉如何将字符串或整数从活动传递到服务 我试图传递一个整数 setpossition 4 但它不需要 启动时总是需要 0 Service 我不知道为什么我不能通过使用 Service 实例从 Activity 进行操作 publ
  • 如何删除因 Google Fitness API 7.5.0 添加的权限

    将我的 play services fitness api 从 7 0 0 更新到 7 5 0 后 我注意到当我将新版本上传到 PlayStore 时 它 告诉我正在添加一个新权限和 2 个新功能 我没有这样做 有没有搞错 在做了一些研究来

随机推荐

  • 透明圆圈黑色

    我正在尝试用 Alpha 制作透明圆圈和黑色周围的所有内容 我正在使用这段代码 但不知何故它不起作用 Gdx gl glEnable GL20 GL BLEND Gdx gl glBlendFunc GL20 GL DST COLOR GL
  • 里氏替换原理的例子是什么?

    我听说里氏替换原则 LSP 是面向对象设计的基本原则 它是什么 它的使用示例有哪些 说明 LSP 的一个很好的例子 由鲍勃叔叔在我最近听到的播客中给出 是有时在自然语言中听起来正确的东西在代码中却不太有效 在数学中 一个Square is
  • rbind 列表列表中的数据帧

    我有一个列表 如下所示 x state year 其中的每个元素都是一个数据框 单独访问它们不是问题 但是 我想跨多个列表重新绑定数据帧 更具体地说 我希望输出尽可能多的数据帧 即每年 rbind 所有状态数据帧 换句话说 我想将所有状态数
  • 将 KeyDown 键转换为一个字符串 C#

    我有磁卡读卡器 当用户刷卡时它会模拟键盘输入 当我的 WPF 窗口处于聚焦状态时 我需要处理键盘输入一个字符串的情况 我可以获得这个键入的键列表 但我不知道如何将它们转换为一个字符串 private void Window KeyDown
  • 在土耳其语文本中大写嵌入的英语单词的预期结果是什么?

    我知道土耳其语 I 的问题 其中 i 的大写在土耳其语和英语中是不同的 但是 土耳其语通常在土耳其语文本中嵌入外来单词 例如英文名称 吗 例如 假设有人将文本 Microsoft Windows 嵌入到其他土耳其文本中 我想将文本大写 英语
  • 类不是类模板

    我收到错误 类不是类模板 知道为什么吗 template
  • 如何使用 Puppeteer 从 XHR 请求获取正文/json 响应[重复]

    这个问题在这里已经有答案了 我想从使用 Puppeteer 抓取的网站获取 JSON 数据 但我不知道如何取回请求正文 这是我尝试过的 const puppeteer require puppeteer const results asyn
  • 如何使用 Windows Server 2019 在 IIS 10 上托管 Node JS 应用程序

    我已经配置了 iisnode 所需的所有内容 但是当我浏览该网站时http localhost 后端 http localhost Backend 后端是 iis 上托管的站点名称 然后什么也没有发生 页面继续加载 我的网络配置
  • ASP.NET 发布尝试复制不存在的文件

    我尝试在 VS2010 中发布 ASP NET 项目 但收到以下错误 将文件 bin CKFinder pdb 复制到 obj Release Package PackageTmp bin CKFinder pdb 失败 找不到文件 bin
  • 将 .htaccess HeaderName 应用到所有较低级别?

    我正在使用以下 htaccess 来整理我的目录列表 Options Indexes IndexOptions IgnoreCase FancyIndexing FoldersFirst NameWidth DescriptionWidth
  • 在Python中从pdf文件中读取和提取文本时单词之间没有空格?

    社区成员您好 我想从一本以 pdf 作为文件扩展名的电子书中提取所有文本 我才知道python有一个包PyPDF2采取必要的行动 不知何故 我尝试过并能够提取文本 但它会导致提取的单词之间的空间不适当 有时结果是 2 3 个单词合并的结果
  • 使用 PendingIntent 托管在不同进程中的服务和活动之间的通信

    我正在从一个片段启动一个前台服务 该片段在调用后被破坏startService 这是我无法使用的原因ResultReceiver or Messanger 所以选项仍然存在PendingIntent 如何使用 PendingIntent 在
  • 使用我自己的 UICollectionViewFlowLayout 子类滚动时 UICollectionView 项目消失

    上下文 我正在使用UICollectionView用于查看照片 每张图片都是一个单元格UIImage 图像可以有不同的尺寸 我希望它们填满整个屏幕 所以我写了一个类来确定每个单独的框架UICollectionCell并让一个子类UIColl
  • 更改 CakePHP 中的管理布局

    我在 cakephp 工作 我的 app config routes php 文件中有以下两行 and setup admin routing Router connect admin controller action array act
  • 为什么 sql.Open() 不应该返回 nil 作为错误?

    我正在尝试连接到 mysql 数据库 我尝试查看如果我提供了错误的连接信息是否会收到错误 但它仍然返回nil作为错误 即使我完全关闭 mysql 它仍然不会返回错误 如果此函数不返回错误 那么在该函数之后检查错误有何意义 这是在 Windo
  • iPhone 6 设备和模拟器上的快照方法被破坏

    由于某种未知的原因 iPhone 6 模拟器 和设备 上的所有屏幕截图方法似乎都可能存在错误 每当我调用任何屏幕截图方法时 包括 屏幕更新后的快照视图 可调整大小的SnapshotViewFromRect 绘制ViewHierarchyIn
  • 将表单输入值作为路径附加到操作 url

    我有一个这样的表格
  • 如何录制屏幕并保存为gif动画? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 有这样的软件吗 尝试这个名为 Cropper 的免费工具 无限帧 将输出设置为动画 Gif http cropper codeplex com htt
  • iOS 动画在 iOS7 中的我的应用程序中停止工作

    我发现我的应用程序中的所有 ios 动画都停止工作 这种情况在 iOS7 中非常频繁地发生 我有一个支持 iOS 5 6 和 7 的应用程序 最近我发现所有 iOS 动画在 iOS7 中的应用程序中都停止工作 在 IOS 7 中 当在后台线
  • EditTextPreference 禁用按钮?

    我想要一个 EditTextPreference 如果 EditText 字段中没有文本 它将禁用 确定 按钮 我创建了一个自定义 EditTextPreference 类 并且能够获取 EditText 对象并设置 TextWatcher