以编程方式单击时突出显示 TextView

2024-01-02

我动态生成 TextView,其工作方式类似于按钮。现在我想在他们受到压力时突出显示他们。比如更改文本颜色或背景颜色。 我尝试过使用选择器,但它不起作用。

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:color="#ffffff"/>
<item android:state_pressed="true" android:state_enabled="false" android:color="#ffffff" />
</selector>

这是我创建 TextView 的循环。

int z = 0;
    for (MOKGenericDataItem d : data) {
        if (d.getButtonText() != null) {
            final int pagePosition = z;
            TextView btn = new TextView(getActivity());
            btn.setId(z);
            final int id_ = btn.getId();
            btn.setText(d.getButtonText());
            btn.setTextSize(TypedValue.COMPLEX_UNIT_SP, 30);
            btn.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT, 1f));
            btn.setGravity(Gravity.CENTER);

            mLineareLayoutViewPagerButtons.addView(btn);

            btn1 = ((TextView) view.findViewById(id_));
            btn1.setOnClickListener(new View.OnClickListener() {
                public void onClick(View view) {
                    mViewPager.setCurrentItem(pagePosition,false);
                }
            });
        }
        z++;
    }

首先,您的这一行会产生歧义,因为您将变量名称设为 btn1 (将其与按钮相关)并且您正在引用TextView,

 btn1 = ((TextView) view.findViewById(id_));

Anyways,一步一步走下去,

  • 创建一个像这样的xmllabel_bg.xml就像下面的drawable folder:

     <?xml version="1.0" encoding="utf-8"?>
        <selector xmlns:android="http://schemas.android.com/apk/res/android">
            <item android:drawable="@drawable/pressed_color"
                  android:state_pressed="true" />    
            <item android:drawable="@drawable/normal_color" />
        </selector>
    
  • In values文件夹创建另一个xml像下面这样,命名为labelcolors.xml

     <?xml version="1.0" encoding="utf-8"?>
    <resources>
    <drawable name="pressed_color">#7ec0ee</drawable> <!--custom color for pressed state -->
    <drawable name="normal_color">#00FFFFFF</drawable> <!--transperent color for normal state -->
    </resources>
    
  • 现在将标签的背景设置为label_bg.xml

      <TextView
        android:id="@+id/yourlabel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="760dp"
        android:layout_marginTop="515dp"
        android:background="@drawable/label_bg"   <!--like this-->
        android:text="LabelText"
        android:textSize="20dp" />
    

当您动态添加视图时,您需要以编程方式设置每个 textView 的背景.对于那个电话setBackgroundResource() on the textview创建并设置对象label.xml作为背景

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

以编程方式单击时突出显示 TextView 的相关文章

随机推荐

  • React Native WebView 中的身份验证

    我有一个工作的反应本机应用程序 我想通过添加一个显示的选项卡以灵活的方式扩展它WebView 在这里 用户将能够看到他们的个人资料信息 因此我需要能够对每个用户进行身份验证 我认为这不会很难实现 因为用户已经在应用程序中进行了身份验证 但显
  • Spark 将 DataFrame 作为 HTTP Post 请求的正文发送

    我有一个数据框 我想将其作为正文发送HTTP Post要求 什么是最好的Sparky怎么办 如何控制HTTP请求的数量 如果记录数量变大 有没有办法将发送数据帧拆分为多个 HTTP Post 调用 假设我的数据框是这样的 user id c
  • isInitialized - 此时无法访问 Lateinit var 的支持字段

    我正在尝试检查是否lateinit属性已初始化 在 Kotlin 1 2 中 我们现在有isInitialized方法 当我在声明 Lateinit 属性的类中执行此操作时 它会起作用 但是当我尝试从另一个类调用它时 我收到以下警告 此时无
  • jQuery 窗口滚动事件。每滚动 XX 像素

    我正在使用优秀的 jQuery Reel 插件 http jquery vostrel cz reel http jquery vostrel cz reel 对于一个项目 我想绑定到窗口滚动事件 因此当用户向下滚动页面时 插件前进 1 帧
  • 如何使用 jQuery 滚动到某个元素?

    我希望页面滚动到页面顶部的 div 我有页面其他部分的按钮 但是当我滚动到底部并单击按钮时 这不起作用 它不会转到页面顶部 这是代码笔 https codepen io Filizof pen xygWyp editors 1010 htt
  • 等待容器端口打开超时(本地主机端口:[32773] 应该正在侦听)

    我正在尝试使用https github com testcontainers testcontainers scala https github com testcontainers testcontainers scala这是固有的htt
  • QMYSQL可用但无法加载

    QSqlDatabase QMYSQL 驱动程序未加载 QSqlDatabase 可用驱动程序 QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7 我挣扎了两天才弄清楚 我做了我的研究相信我 这
  • 在 dplyr tidyverse 中按组对不同行数进行采样

    我想按组从数据框中采样行 但问题是 我想根据另一个表中的数据对不同数量的记录进行采样 这是我的可重现数据 df lt data frame Stratum rep c High Medium Low 10 id c 1 30 Value r
  • ActiveJob::SerializationError - 不支持的参数类型:时间/日期时间

    我正在使用 Rails 5 和 ActiveJob 来处理后台任务 我正在尝试传递一个序列化的对象as json到我的工作 但我收到以下错误 ActiveJob SerializationError Unsupported argument
  • 如何将 Passport 和 Angular-UI 路由结合起来

    我想知道如何将 Angular UI Routing 与 Passport 结合起来 我找到的所有示例都使用 node js 路由 var routerApp angular module routerApp ui router route
  • 使用 json_modify.py 更改 JSON 键名称

    如何使用更改 JSON 键名称json 修改 py https github com integr8ly installation blob master library json modify py 我有以下数组 我想更改public i
  • System.Data.OracleClient 不适用于 64 位 Oracle 客户端

    我设计了一个 C 应用程序来连接到 Oracle 数据库并更改架构用户密码 我的参考程序集是来自以下位置的 System Data OracleClient C Program Files x86 Reference Assemblies
  • Rails 4 中的 has_many 'conditions' 选项相当于什么?

    有人能告诉我在 Rails 4 中执行以下行的等效方法是什么吗 has many friends through gt friendships conditions gt status accepted order gt first nam
  • MSBuild - 如何复制可能存在或不存在的文件?

    我遇到一种情况 我需要在 MSBuild 脚本中复制一些特定文件 但它们可能存在也可能不存在 如果它们不存在也没关系 我就不需要它们了 但标准
  • 在未知的 NSMutableArray 深度中搜索值

    好吧 我问了错误的问题 所以我编辑了原来的问题 我将数组存储在数组中 以及 NSDictionaries 它是一种实用程序类型的应用程序 没有固定的结构 用户可以根据需要输入嵌套信息 理想情况下 我需要一种方法来滚动浏览给定参数 一种类的类
  • Cordova Android 状态栏设置为透明

    我正在尝试使用下面的这个插件将状态栏设置为透明 但我无法实现它 我可以将其更改为不同的颜色 但不透明 https github com apache cordova plugin statusbar https github com apa
  • 下载旧版本的 Google App Engine SDK

    在哪里可以找到下载旧版 GAE SDK 例如 1 9 15 我需要找出覆盖范围 也许使用第 3 方 API 该 API 与最新版本不能很好地配合 这取决于相应的 SDK 是否仍受官方支持 这两种类型都可以在appengine sdks ht
  • 使用文本框输入在画布上移动对象

    我有一个画布 可以在上面添加图层 这些图层可以移动 选择 旋转 调整大小等 在画布下方 我显示图层的属性 x y 宽度 高度 我想做的是 当我更改包含 x 和 y 坐标的文本框中的值时 图层应该重新定位到我输入的坐标 我已经尝试了几件事 但
  • 在 Windows 中更改 Python 3 中的“区域设置首选编码”

    我正在使用 Python 3 最近从 Python 2 切换而来 我的代码通常在 Linux 上运行 但有时 不经常 在 Windows 上运行 根据 Python 3 文档open https docs python org 3 libr
  • 以编程方式单击时突出显示 TextView

    我动态生成 TextView 其工作方式类似于按钮 现在我想在他们受到压力时突出显示他们 比如更改文本颜色或背景颜色 我尝试过使用选择器 但它不起作用