我正在用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/