1

GridViewAndroidアプリでを使用しています。私の携帯電話ではすべてが完全に機能しますが、タブレットエミュレーターでアプリを実行しようとすると、最初にクラッシュしました。

エラーはE/AndroidRuntime(466): java.lang.RuntimeException: Unable to start activity ComponentInfo{****/***.Main}: java.lang.RuntimeException: Unable to start activity ComponentInfo{***/***.views.calendar.CalendarView}: android.view.InflateException: Binary XML file line #42: Error inflating class android.widget.GridView 、行#42に単に<GridView>タグが含まれていることです。

次に、スタックトレースはCaused by: android.view.InflateException: Binary XML file line #42: Error inflating class android.widget.GridViewを示し、次のようにCaused by: java.lang.reflect.InvocationTargetException終了します。

02-11 23:57:17.079: E/AndroidRuntime(466): Caused by: android.content.res.Resources$NotFoundException: File  from drawable resource ID #0x1020004
02-11 23:57:17.079: E/AndroidRuntime(466):  at android.content.res.Resources.loadDrawable(Resources.java:1874)
02-11 23:57:17.079: E/AndroidRuntime(466):  at android.content.res.TypedArray.getDrawable(TypedArray.java:601)
02-11 23:57:17.079: E/AndroidRuntime(466):  at android.widget.AbsListView.<init>(AbsListView.java:711)
02-11 23:57:17.079: E/AndroidRuntime(466):  at android.widget.GridView.<init>(GridView.java:76)
02-11 23:57:17.079: E/AndroidRuntime(466):  at android.widget.GridView.<init>(GridView.java:72)

LayoutParamsを使用していません。xmlレイアウトは次のようになります。

<?xml version="1.0" encoding="UTF-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/calendar_relativeLayout_main"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <RelativeLayout
        android:id="@+id/calendar_relativeLayout_infoBar"
        android:layout_width="fill_parent"
        android:layout_height="40dp"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:background="@color/calendar_infoBar_background" >

        <ImageButton
            android:id="@+id/calendar_imageButton_previousMonth"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:layout_alignParentLeft="true"
            android:background="@null"
            android:src="@drawable/ic_calendar_prev" />

        <ImageButton
            android:id="@+id/calendar_imageButton_nextMonth"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:layout_alignParentRight="true"
            android:background="@null"
            android:src="@drawable/ic_calendar_next" />

        <TextView
            android:id="@+id/calendar_textView_currentMonth"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:text="February 2012"
            android:textSize="17dp" />

    </RelativeLayout>

    <GridView
        android:id="@+id/calendar_gridView_currentCalendar"
        android:layout_width="fill_parent"
        android:layout_height="240dp"
        android:layout_below="@+id/calendar_relativeLayout_infoBar"
        android:numColumns="7"
        android:isScrollContainer="false"
        android:listSelector="@android:id/empty">
    </GridView>

</RelativeLayout>

私が理解していないのは、どうしてGridView携帯電話では機能し、タブレットでは機能しないのかということです...

手がかりを事前に感謝します...

4

1 に答える 1

3
android:listSelector="@android:id/empty"

私の知る限り、listSelector属性は、IDではなくドローアブルへの参照を期待しています。@android:id/emptyListViewおよびGridViewのオプションの「空の」ビューを宣言するために使用できます。上記のように使用することを意図したものではないと確信しています。詳細については、を参照ListActivityしてください。実際のドローアブル(または色)を参照してみてください。たとえば@null@android:color/transparentセレクターを「非表示」にします(または高さを「0」に設定します)。

または、タブレットが適切なリソースを見つけられないようにするリソース修飾子を使用している可能性があります。詳細については、 「Androidが最適なリソースを見つける方法」の説明をお読みください。ただし、GridView宣言でドローアブルリソースを直接参照していないため、これが問題であるとは思えません。

于 2012-02-12T02:39:47.943 に答える