android - 在不使用 setEnabled 属性的情况下禁用按钮
问题描述
我有一个按钮,选择器就像
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/bg_circle_selected"/>
<item android:drawable="@drawable/bg_circle_disabled" />
</selector>
所以当我点击按钮时,背景会显示一个红色的圆圈。我需要根据条件禁用此按钮,因此不应显示突出显示。
如果我将它设置为 setEnabled false 它将起作用但是还有另一种情况是禁用的按钮应该提供听觉反馈。
因此,当我将 setEnabled 设置为 false 时,其他要求将不起作用,因为触摸被禁用。
除了setEnabled()还有什么方法可以禁用按钮吗?
解决方案
您可能需要考虑从 java 文件而不是 XML 以编程方式设置按钮的属性。从您的 XML 布局文件中给按钮一个 id,然后从 java 文件中引用它。这样,您将可以更好地控制它的行为方式。
例如,android:id="@+id/my_button"
在 XML 中。然后Button button = findViewById(R.id.my_button);
在onCreate
方法中。
之后,给它你想要的任何属性。
推荐阅读
- c++ - 我遇到了错误的访问问题
- user-permissions - 重建关系表与其他表的关系是否合理?
- java - 将附件上传到 azure devops [REST API]
- wpf - 如何以编程方式从 DataGridCheckBoxColumn 获取绑定表达式
- sql - 错误是期望的列数少于返回的列数
- google-sheets - Google表格中的查询公式未评估整个列
- flutter - Flutter:当我热重载我的提供者时创建新对象
- python - 这如何适用于 Python 中的乘法?
- javascript - 如何在不停止 Python 函数的情况下向 JS 发送返回值
- node.js - Puppeteer:仅为主页域添加基本身份验证标头,不适用于第 3 方请求