android - 为 ListView 设置选择器时出现异常

标签 android android-listview

我正在尝试像这样设置一个 ListView 选择器:

fileList.setSelector(android.R.layout.simple_list_item_checked);

然后我得到:

10-02 18:30:08.365: E/AndroidRuntime(13294): java.lang.IllegalStateException: Could not execute method of the activity
10-02 18:30:08.365: E/AndroidRuntime(13294):    at android.view.View$1.onClick(View.java:3044)
10-02 18:30:08.365: E/AndroidRuntime(13294):    at android.view.View.performClick(View.java:3511)
10-02 18:30:08.365: E/AndroidRuntime(13294):    at android.view.View$PerformClick.run(View.java:14109)
10-02 18:30:08.365: E/AndroidRuntime(13294):    at android.os.Handler.handleCallback(Handler.java:605)
10-02 18:30:08.365: E/AndroidRuntime(13294):    at android.os.Handler.dispatchMessage(Handler.java:92)
10-02 18:30:08.365: E/AndroidRuntime(13294):    at android.os.Looper.loop(Looper.java:137)
10-02 18:30:08.365: E/AndroidRuntime(13294):    at android.app.ActivityThread.main(ActivityThread.java:4424)
10-02 18:30:08.365: E/AndroidRuntime(13294):    at java.lang.reflect.Method.invokeNative(Native Method)
10-02 18:30:08.365: E/AndroidRuntime(13294):    at java.lang.reflect.Method.invoke(Method.java:511)
10-02 18:30:08.365: E/AndroidRuntime(13294):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
10-02 18:30:08.365: E/AndroidRuntime(13294):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
10-02 18:30:08.365: E/AndroidRuntime(13294):    at dalvik.system.NativeStart.main(Native Method)
10-02 18:30:08.365: E/AndroidRuntime(13294): Caused by: java.lang.reflect.InvocationTargetException
10-02 18:30:08.365: E/AndroidRuntime(13294):    at java.lang.reflect.Method.invokeNative(Native Method)
10-02 18:30:08.365: E/AndroidRuntime(13294):    at java.lang.reflect.Method.invoke(Method.java:511)
10-02 18:30:08.365: E/AndroidRuntime(13294):    at android.view.View$1.onClick(View.java:3039)
10-02 18:30:08.365: E/AndroidRuntime(13294):    ... 11 more
10-02 18:30:08.365: E/AndroidRuntime(13294): Caused by: android.content.res.Resources$NotFoundException: File res/layout/simple_list_item_checked.xml from drawable resource ID #0x1090005
10-02 18:30:08.365: E/AndroidRuntime(13294):    at android.content.res.Resources.loadDrawable(Resources.java:1923)
10-02 18:30:08.365: E/AndroidRuntime(13294):    at android.content.res.Resources.getDrawable(Resources.java:664)
10-02 18:30:08.365: E/AndroidRuntime(13294):    at android.widget.AbsListView.setSelector(AbsListView.java:2196)
10-02 18:30:08.365: E/AndroidRuntime(13294):    at com.blablabla.android.helpers.gui.dialog.fexplorer.FileExplorer.initializeViews(FileExplorer.java:85)
10-02 18:30:08.365: E/AndroidRuntime(13294):    at com.blablabla.android.helpers.gui.dialog.fexplorer.FileExplorer.<init>(FileExplorer.java:76)
10-02 18:30:08.365: E/AndroidRuntime(13294):    at com.example.pruebaandroid.MainActivity.click(MainActivity.java:34)
10-02 18:30:08.365: E/AndroidRuntime(13294):    ... 14 more
10-02 18:30:08.365: E/AndroidRuntime(13294): Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #17: invalid drawable tag CheckedTextView
10-02 18:30:08.365: E/AndroidRuntime(13294):    at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:863)
10-02 18:30:08.365: E/AndroidRuntime(13294):    at android.graphics.drawable.Drawable.createFromXml(Drawable.java:804)
10-02 18:30:08.365: E/AndroidRuntime(13294):    at android.content.res.Resources.loadDrawable(Resources.java:1920)
10-02 18:30:08.365: E/AndroidRuntime(13294):    ... 19 more

知道为什么会这样吗?

最佳答案

您正在尝试将来自 SDKlayout 资源设置为选择器(该布局文件特别是一个简单的 CheckedTextView元素),这显然无法正常工作,因为它需要一个drawable 资源。您很可能想要一个drawable:

android.R.drawable.something

(例如:android.R.drawable.list_selector_background,默认选择器)

关于android - 为 ListView 设置选择器时出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12695321/

相关文章:

Android:Strings.xml 中具有 Double 值的字符串格式

android - 有选择地在 ImageView 周围添加边框

Android ListView 行 View 左右边框拉伸(stretch)到高度

使用 Ruby 编写 Android 模拟器 Shell 脚本

android - 它使没有边距的 View 膨胀

android - 具有任意数量行类型的 ListView 适配器(不知道不同行类型的数量)

Android:如何从 strings.xml 中获取值到 ListView 中?

java - 使类可变

Android ArrayAdapter/ListView 不会在 Fragment 中更新

android - 多级 ExpandableListView 中的项目并不总是可点击