Android 工作室,AppCompatButton 的子类不像按钮
Android studio, subclass of AppCompatButton does not act like a button
我正在 java 开发 android 应用程序,我创建了 android.support.v7.widget.AppCompatButton 的子 class,因为你不是应该直接subclass按钮。当我创建 subclass 对象(以下称为 "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 上下文引起的。特别是,在实例化视图组件时使用的与这些上下文关联的主题通常是不同的。
作为一般规则,您应该使用当时直接可用的上下文。在 activity 中,这意味着通过 this
.
使用它自己的上下文
更多详情请看这部经典post:
我正在 java 开发 android 应用程序,我创建了 android.support.v7.widget.AppCompatButton 的子 class,因为你不是应该直接subclass按钮。当我创建 subclass 对象(以下称为 "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 上下文引起的。特别是,在实例化视图组件时使用的与这些上下文关联的主题通常是不同的。
作为一般规则,您应该使用当时直接可用的上下文。在 activity 中,这意味着通过 this
.
更多详情请看这部经典post: