Проблема с просмотром сетки Android 1.5

#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. Но я не могу ее найти.