#android
#Android
Вопрос:
Я использовал gridview в этом приложении.
Когда я запускаю его в версии 1.6 или новее, все в порядке. Но я не могу получить этот gridview в 1.5.
Я всегда показываю эту информацию и исключение:
Не удается решить drawable "com.android.layoutlib.утилиты.Значение DensityBasedResourceValue@397660" в атрибуте "listSelector" org.xmlpull.v1.XmlPullParserException: строка двоичного XML-файла # 3: для тега требуется атрибут 'drawable' или дочерний тег, определяющий drawable на Android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:151) на Android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java: 779) на Android.graphics.drawable.Drawable.createFromXml(Drawable.java:720) на com.android.layoutlib.bridge.ResourceHelper.getDrawable(ResourceHelper.java:150) на com.android.layoutlib.bridge.BridgeTypedArray.getDrawable(BridgeTypedArray.java:668) в android.widget.AbsListView.(AbsListView.java: 514) в android.widget.Просмотр сетки.(GridView.java:69) в android.widget.Просмотр сетки.(GridView.java:65) в sun.reflect.NativeConstructorAccessorImpl.newInstance0(собственный метод) в sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) в sun.reflect.Делегирование constructoraccessorimpl.newInstance(делегирование constructoraccessorimpl.java:27) в java.lang.reflect.Конструктор.Новый экземпляр (Constructor.java: 513) в android.view.LayoutInflater.CreateView(LayoutInflater.java: 499) в android.view.BridgeInflater.onCreateView(BridgeInflater.java:77) в android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:562) в android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:122) в android.view.Макет плоский.rInflate(LayoutInflater.java: 617) в android.view.Макет плоский.rInflate(LayoutInflater.java:620) в android.view.LayoutInflater.inflate(LayoutInflater.java: 407) в android.view.LayoutInflater.inflate(LayoutInflater.java: 296) на com.android.layoutlib.bridge.Bridge.computeLayout(Bridge.java:377) в com.android.ide.eclipse.adt.internal.editors.layout.gle1.Графический редактор.computeLayout (неизвестный источник) в com.android.ide.eclipse.adt.internal.editors.layout.gle1.GraphicalLayoutEditor.recomputeLayout (неизвестный источник) в com.android.ide.eclipse.adt.internal.editors.layout.gle1.Активирован графический редактор. (неизвестный источник) в com.android.ide.eclipse.adt.internal.editors.layout.LayoutEditor.pageChange (неизвестный источник) в org.eclipse.ui.part.MultiPageEditorPart.setActivePage(MultiPageEditorPart.java:1076) в org.eclipse.ui.forms.editor.FormEditor.setActivePage(FormEditor.java:601) в com.android.ide.eclipse.adt.internal.editors.AndroidEditor.selectDefaultPage (неизвестный источник) в com.android.ide.eclipse.adt.internal.editors.AndroidEditor.addPages (неизвестный источник) в org.eclipse.ui.forms.editor.FormEditor.createPages(FormEditor.java:138) в org.eclipse.ui.part.MultiPageEditorPart.createPartControl(MultiPageEditorPart.java:357) в org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:662) в org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:462) в org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595) в org.eclipse.ui.internal.Панель элементов.setVisible(панель элементов.java: 313) в org.eclipse.ui.internal.presentations.PresentablePart.setVisible(PresentablePart.java:180) в org.eclipse.ui.internal.presentations.util.PresentablePartFolder.select(PresentablePartFolder.java:270) в org.eclipse.ui.internal.presentations.util.LeftToRightTabOrder.select(LeftToRightTabOrder.java:65) в org.eclipse.ui.internal.presentations.util.Представление в виде таблиц.Выберите часть (TabbedStackPresentation.java:473) при выборе org.eclipse.ui.internal.PartStack.refreshPresentationSelection(PartStack.java:1256) в org.eclipse.ui.internal.PartStack.setSelection(PartStack.java: 1209) в org.eclipse.ui.internal.PartStack.showPart(PartStack.java: 1608) в org.eclipse.ui.internal.PartStack.add(PartStack.java:499) в org.eclipse.ui.internal.EditorStack.add(EditorStack.java:103) в org.eclipse.ui.internal.PartStack.add(PartStack.java:485) в org.eclipse.ui.internal.EditorStack.add(EditorStack.java:112) в org.eclipse.ui.internal.EditorSashContainer.addEditor (EditorSashContainer.java:63) в org.eclipse.ui.internal.EditorAreaHelper.addToLayout(EditorAreaHelper.java:225) в org.eclipse.ui.internal.EditorAreaHelper.addEditor (EditorAreaHelper.java:213) в org.eclipse.ui.internal.EditorManager.createEditorTab(EditorManager.java:778) в org.eclipse.ui.internal.EditorManager.openEditorFromDescriptor(EditorManager.java:677) в org.eclipse.ui.internal.EditorManager.openEditor (EditorManager.java:638) в org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2854) в org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2762) в org.eclipse.ui.internal.WorkbenchPage.access$ 11(WorkbenchPage.java: 2754) в org.eclipse.ui.internal.WorkbenchPage$ 10.run(WorkbenchPage.java: 2705) в org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) в org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java: 2701) в org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java: 2685) в org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java: 2676) в org.eclipse.ui.ide.IDE.openEditor(IDE.java: 651) в org.eclipse.ui.ide.IDE.openEditor (IDE.java: 610) в org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor (EditorUtility.java:361) в org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor (EditorUtility.java:168) в org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java: 229) в org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java: 208) в org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun(SelectionDispatchAction.java:274) в org.eclipse.jdt.ui.actions.SelectionDispatchAction.run(SelectionDispatchAction.java:250) в org.eclipse.jdt.internal.ui.packageview.PackageExplorerActionGroup.handleOpen(PackageExplorerActionGroup.java:373) в org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart $ 4.открыть (PackageExplorerPart.java:526) в org.eclipse.ui.OpenAndLinkWithEditorHelper$InternalListener.open(OpenAndLinkWithEditorHelper.java:48) в org.eclipse.jface.viewers.StructuredViewer $ 2.запустить (StructuredViewer.java:842) в org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) в org.eclipse.core.runtime.Platform.run (платформа.java: 888) в org.eclipse.ui.internal.JFaceUtil$1.выполнить (JFaceUtil.java:48) в org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175) в org.eclipse.jface.viewers.StructuredViewer.fireOpen(StructuredViewer.java:840) в org.eclipse.jface.viewers.StructuredViewer.handleOpen(StructuredViewer.java:1101) в org.eclipse.jface.viewers.StructuredViewer $ 6.handleOpen(StructuredViewer.java: 1205) в org.eclipse.jface.util.OpenStrategy.fireOpenEvent(OpenStrategy.java:264) в org.eclipse.jface.util.OpenStrategy.access $ 2 (OpenStrategy.java: 258) в org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:298) в org.eclipse.swt.widgets.Таблица событий.SendEvent(EventTable.java:84) в org.eclipse.swt.widgets.Widget.SendEvent(Widget.java: 1003) в org.eclipse.swt.widgets.Display.runDeferredEvents (Display.java:3910) в org.eclipse.swt.widgets.Display.readAndDispatch(Display.java: 3503) в org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java: 2405) в org.eclipse.ui.internal.Workbench.runUI(Workbench.java: 2369) в org.eclipse.ui.internal.Workbench.access за 4 доллара (Workbench.java: 2221) в org.eclipse.ui.internal.Workbench за 5 долларов.выполнить(Workbench.java:500) в org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) в org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493) в org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) в org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113) в org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194) в org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) в org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) в org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java: 368) в org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java: 179) в sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) в sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) в sun.reflect.Делегирование methodaccessorimpl.invoke(делегирование methodaccessorimpl.java:25) в java.lang.reflect.Метод.invoke(Method.java:597) в org.eclipse.equinox.launcher.Main.invokeFramework (Main.java: 559) в org.eclipse.equinox.launcher.Main.basicRun(Main.java: 514) в org.eclipse.equinox.launcher.Main.run(Main.java: 1311)
Это макет xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:background="@drawable/menu_background2">
<LinearLayout android:id="@ id/logopanel"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_alignParentTop="true"
android:layout_marginTop="50dip" android:gravity="center"
android:layout_marginBottom="10dip">
<ImageButton android:id="@ id/searchbar"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:background="@drawable/fake_search_bar"></ImageButton>
</LinearLayout>
<LinearLayout android:id="@ id/iconpanel"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_below="@ id/logopanel"
android:layout_above="@ id/allbotpanel" android:layout_marginTop="10dip">
<GridView android:id="@ id/gridcontent" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:gravity="center"
android:numColumns="3" android:layout_gravity="center"
android:layout_centerInParent="true" android:background="@drawable/transparent_backgroud"
android:listSelector="@drawable/gridviewselector">
</GridView>
</LinearLayout>
<RelativeLayout android:id="@ id/allbotpanel"
android:layout_width="fill_parent" android:layout_height="75dip"
android:background="@drawable/amex_bottom_bar"
android:layout_alignParentBottom="true">
<LinearLayout android:id="@ id/noticebar"
android:orientation="horizontal" android:layout_width="fill_parent"
android:layout_height="29dip" android:layout_above="@ id/homebottombar">
<ImageButton android:id="@ id/infoicon"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="left|center_vertical"
android:layout_marginLeft="10dip" android:background="@drawable/amex_info_button" android:src="@drawable/infoselector"></ImageButton>
<TextView android:id="@ id/noticeicon" android:gravity="center"
android:layout_gravity="right|center_vertical" android:layout_width="wrap_content"
android:layout_height="25dip" android:layout_weight="1"
android:clickable="true" android:focusable="true" android:text="@string/notice_string"></TextView>
</LinearLayout>
<LinearLayout android:id="@ id/homebottombar"
android:orientation="horizontal" android:layout_width="fill_parent"
android:layout_height="46dip" android:gravity="center"
android:layout_alignParentBottom="true" android:background="@drawable/amex_bottom_bar"
android:layout_marginBottom="3dip"></LinearLayout>
</RelativeLayout>
</RelativeLayout>
Комментарии:
1. Кажется, что в вашем gridviewselector.xml. Вы должны опубликовать это
2. <?xml version=»1.0″ encoding=»utf-8″?> <селектор xmlns: android=» schemas.android.com/apk/res/android «> <состояние элемента сфокусировано = «true» android: состояние нажато =»true» android: возможность рисования = «@drawable / dot» /> <состояние элемента сфокусировано = «false» android: состояние нажато =»false» android: возможность рисования =»@drawable/transparent_backgroud» /> </selector>
3. И эта точка представляет собой просто прозрачное изображение с 9 контурами. transparent_backgroud : я определяю это в папке color: <?xml version= «1.0» encoding= «utf-8»?> <ресурсы> <имя для рисования = «background»>#FFFFFF</drawable> <имя для рисования = «transparent_backgroud»>#00000000</drawable> <имя для рисования =»botbuttoncolor»>#4f74a1</drawable> <имя для рисования=» botbuttonfouce»>#374a6f</drawable> <имя для рисования= «curiscolor»>#555555</drawable> <имя для рисования =»addtextcolor»>#9a9a9a</drawable> <имя для рисования =»buttoncolor»>#174882</drawable> <имя для рисования =»buttonpresscolor»>#0a2250</drawable> </ресурсы>
Ответ №1:
Я думаю, что ваша проблема заключается в вашем определении цветов. Определение цветов должно выглядеть следующим образом:
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<color name="white">#ffffffff</color>
<color name="black">#ff000000</color>
<color name="red">#FF0000ff</color>
<color name="grey">#FFc0c0c0</color>
</resources>
Атрибут drawable должен ссылаться на объект, доступный только для рисования (bitmap / shape)
Комментарии:
1. Но это также показывает мне это: невозможно разрешить drawable «com.android. layoutlib.утилиты. Значение DensityBasedResourceValue@12d762c» в атрибуте «listSelector», поэтому я думаю, что эта проблема связана с моей проблемой gridviewselector. Но я не могу ее найти.