java - Android studio,AppCompatButton的子类不像按钮

标签 java android button android-appcompat

我正在用java开发一个android应用程序,我创建了一个android.support.v7.widget.AppCompatButton的子类,因为你不应该直接子类化Button。当我创建子类对象(hencforth 称为“subButton”)并通过 XML 将其添加到 Activity 时,该项目的外观和行为就像一个按钮,但是当我通过 Java(以编程方式)这样做时,它的外观和行为就像一个 textView。

我的 XML 是

  <com.example.appName.subButton
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:text="xmlTestItem"/> 

虽然我的Java是

 subButton testItem = new subButton(getApplicationContext());
    testItem.setText("javaTestItem");
    testItem.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT ,ViewGroup.LayoutParams.MATCH_PARENT));
    mainListScroll.addView(testItem);

但它仍然只显示文本而不是按钮。有什么线索吗?

最佳答案

该问题很可能是由于在实例化 subButton 实例时使用应用程序上下文而不是 Activity 上下文引起的。特别是,实例化 View 组件时使用的与这些上下文关联的主题通常是不同的。

作为一般规则,您应该使用当时直接可用的上下文。在 Activity 中,这意味着通过 this 使用自己的上下文。

更多详情请看这篇经典帖子:https://stackoverflow.com/a/7298955/2259854

关于java - Android studio,AppCompatButton的子类不像按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48106773/

相关文章:

java - 为基于 CMIS 的服务器创建 Java 客户端

java - 使用 Joda 组合两个 Date 实例以创建日期时间

Android,我看到堆在增长,但我希望它停止

react-native - 在 React Native 中向 onPress 函数添加多个事件

java - 如何通过JAVA API获取AWS Billing指标

java - 如何使用 Java 使用斯坦福 NLP 工具生成通用依赖关系?

模拟器上的 Android 4.3

android - OnGlobalLayoutListener : deprecation and compatibility

java - 如何制作直径为 3xp 的圆形的 javafx 按钮?

python - 在 Kivy for Python 中按下按钮时更新标签的文本