我正在尝试为表布局
中的每一行设置 onClick()
突出显示。
我有一个可绘制的资源文件:
<item
android:drawable="?android:attr/selectableItemBackground"
android:state_focused="true"
android:state_pressed="true" />
<!-- Bottom border -->
<item android:top="65dp" android:left="15dp">
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<size android:height="0.25dp"/>
<solid android:color="@color/dark_blue"/>
</shape>
</item>
我已经在三星Galaxy S5设备上进行了测试,该设备可以正常工作。但是,当我在安装了Android 4.4.2的中兴Compel设备上进行测试时,它不起作用。
我的应用程序针对API 15及更高版本。
任何想法为什么这样: ?Android:attr/可选项后台
不能在Android4.4.2设备上工作?
日志中的错误:
由以下原因引起:组织:二进制 XML 文件行 #7:标记需要“可绘制”属性或定义可绘制的子标记
我有 ?attr/可选项目后台
,但它不能解决问题。我做了大量的研究。
您方面还有其他建议吗?
问题出在我的可绘制资源文件中,我使用的是层列表。图层列表(或状态列表)中的可绘制属性不接受属性值。
但是,我无法在布局文件中设置此attr值,因为我还需要为每个表行设置底部边框。
为了解决这个问题,在Java类文件中:
我在 onCreate() 方法中检索对每一行的引用。
示例:< code > TableRow row row 1 =(TableRow)findViewById(r . id . table _ row _ 1);
然后,我创建了一个方法,用于将属性添加到bottom_border drawable文件:
`void setRowHighlight(TableRow row) {
// Attribute array
int[] attrs = new int[] { android.R.attr.selectableItemBackground };
TypedArray a = getTheme().obtainStyledAttributes(attrs);
// Drawable held by attribute 'selectableItemBackground' is at index '0'
Drawable d = a.getDrawable(0);
a.recycle();
if (Build.VERSION.SDK_INT < 16) {
LayerDrawable ld = new LayerDrawable(new Drawable[] {
// Table Rows Border Drawable
getResources().getDrawable(R.drawable.table_rows_border),
// Drawable from attribute
d });
// Set the background to 'ld'
row.setBackgroundDrawable(ld);
} else {
LayerDrawable ld = new LayerDrawable(new Drawable[] {
// Table Rows Border Drawable
ResourcesCompat.getDrawable(getResources(), R.drawable.table_rows_border, null),
// Drawable from attribute
d });
// Set the background to 'ld'
row.setBackground(ld);
}
}`
启用行高亮,在onCreate()中调用我的方法:setRowHighlight(row1);
我已经在我的三星Galaxy S5设备(Android 5.0)和中兴Compel设备(Android 4.4.2)上进行了测试,它可以工作。
参考:?android:attr/selectableItembackground与另一个现有背景
代码如下: 这是适配器,我在这里为列表做了自己的设计(< code>R.layout.zalistu),它在仿真器中工作,但在设备上它给我一个错误(应用程序意外停止),如果我使用< code>simple_list_item_1,那么它在仿真器和我的设备上都可以正常工作。 这里是R:layout.zalistu: 日志猫: 我设备上的Android版本是2.3.7,模拟器上的版本是4.0.4(AP
编辑:Android Studio很慢地告诉我已弃用。由于某种原因,直到编写并运行代码很久之后,它才告诉我。然而,问题仍然存在。我只是想在我的问题中加入这个发现。 我有一个充当指南针的ImageView。在真实设备上一切都正常,但在我的模拟器上,扩展控件对ImageView没有影响。 如果我在模拟器上使用谷歌地图,我可以看到指南针在工作。如果我的应用程序在真实设备上运行,为什么它的工作原理不一样?
问题内容: 嗨,我只是简单地尝试在www.example.com上获取h1标签,该标签显示为“ Example Domain”。该代码适用于http://www.example.com,但不适用于https://www.exmaple.com。我该如何解决这个问题?谢谢 问题答案: PhantomJSDriver不支持(所有)DesiredCapabilities。 你会需要: 记录在这里:htt
所以我使用这种方法写入文件,它在windows上运行完全正常,但在mac上运行时,它会创建文件,但它们是空的。 我知道数据是正确的,因为它打印正确。感谢您的任何帮助,这真的让我绊倒了。
我是Android开发的新手 我试图在应用程序中创建自定义标题栏。它正在模拟器中工作。但是当我在我的设备上运行这个应用程序时…它停止了(没有加载) 自定义标题栏的 XML 代码 我的活动类中的代码 模拟器中没有问题...它在那里工作正常,但在真实设备中不起作用,如果有人请告诉我解决方案。
列名称的类型为int[] 上述查询适用于postgresql,但不适用于hsqldb,甚至适用于sql 尝试的hsqldb版本:2.2.9和2.3.0 在hsqldb中工作的sql是从table_name中选择x,unnest(column_name)y(x)x和y不是该表的列。