6

ユーザーに4.1(ジェリービーンズ)をインストールしてもらいましたが、ListView onItemClick()がアプリで機能しなくなりました。イベントは発生せず(ブレークポイントとコンソールでチェック)、UIは視覚的に変更されていないように見えます。だから私はエミュレーターで試してみましたが(信じられないほど遅いですが)、同じ問題が発生しました。

新しいOSの違いに気づいた人はいますか?

私のアイテムのレイアウトには焦点を絞ることができず、古いOSでも問題なく動作します。

ListViewを含むレイアウトは次のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:background="@drawable/Background">

  <ImageView
    android:id="@+id/LiveGameLogo"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_alignParentTop="true"
    android:src="@drawable/SmallLogo"/>

  <ImageButton
    android:id="@+id/BackLiveGameButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@android:color/transparent"
    android:src="@drawable/backbutton_button"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_marginLeft="7dp"
    android:layout_marginTop="7dp"/>

  <TextView
    android:id="@+id/LiveGameEditButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/edit_button"
    android:clickable="true"
    android:layout_alignParentTop="true"
    android:layout_alignParentRight="true"
    android:layout_marginRight="7dp"
    android:layout_marginTop="7dp"/>

  <ImageView
     android:id="@+id/LiveGameLayoutBackground"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:layout_alignBottom="@+id/LiveGamePlayerLayout"
     android:layout_alignTop="@+id/LiveGamePlayerLayout"
     android:background="@android:color/white"
     android:layout_marginTop="7dp"
     android:layout_marginBottom="7dp"/>

  <ListView
    android:id="@+id/LiveGamesList"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:layout_below="@+id/LiveGamePlayerLayout"
    android:layout_marginTop="-7dp"
    android:layout_above="@+id/LiveGamesAdPlacement"
    android:background="#FFFFFF"
    android:cacheColorHint="#00000000"/>

  <RelativeLayout
      android:id="@+id/LiveGamePlayerLayout"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:layout_below="@+id/LiveGameLogo"
      android:background="@drawable/LiveGameBanner"
      android:layout_marginTop="10dp">

    <ImageView
      android:id="@+id/LiveGamesPlayerImage"
      android:layout_width="50dp"
      android:layout_height="50dp"
      android:layout_centerVertical="true"
      android:layout_marginLeft="5dp"/>

    <ImageView
      android:id="@+id/LiveGamesPlayerBadge"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_alignParentRight="true"
      android:layout_centerVertical="true"
      android:layout_marginRight="5dp"/>

    <LinearLayout
      android:id="@+id/LiveGamesLinearLayout1"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_centerVertical="true"
      android:layout_toRightOf="@+id/LiveGamesPlayerImage"
      android:orientation="vertical"
      android:layout_marginLeft="20dp">

      <TextView
        android:id="@+id/LiveGamesPlayerScoreText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/TotalScoreSemicolon"
        android:textColor="@color/darkbluetext"
        android:textSize="16dp" />

      <TextView
        android:id="@+id/LiveGamesPlayerCoinText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:layout_marginTop="5dp"
        android:drawableLeft="@drawable/GameCoin"
        android:drawablePadding="5dp"
        android:text="@string/Semicolon"
        android:textColor="@color/cointext"
        android:textSize="16dp" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/LinearLayout1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_marginLeft="10dp"
        android:layout_toRightOf="@+id/LiveGamesLinearLayout1"
        android:orientation="vertical" >

      <TextView
          android:id="@+id/LiveGamesPlayerLifetimeTotal"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="0"
          android:textColor="@color/bluescore"
          android:textSize="20dp" android:layout_marginBottom="2dp"/>

      <TextView
          android:id="@+id/LiveGamesPlayerCurrentTotal"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_marginTop="4dp"
          android:text="0"
          android:textColor="@color/cointext"
          android:textSize="20dp" />
    </LinearLayout>

  </RelativeLayout>

  <RelativeLayout
    android:id="@+id/LiveGamesAdPlacement"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

</RelativeLayout>

アイテムのレイアウトは次のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/RelativeLayout1"
    android:layout_width="fill_parent"
    android:layout_height="?android:attr/listPreferredItemHeight">
    <ImageView
      android:id="@+id/GamePlayerImage"
      android:layout_height="50dp"
      android:layout_width="50dp"
      android:layout_alignParentLeft="true"
      android:layout_centerVertical="true"
      android:layout_margin="7dp" />
    <ImageView
      android:id="@+id/GamePlayerBadge"
      android:layout_height="wrap_content"
      android:layout_width="wrap_content"
      android:layout_toRightOf="@+id/GamePlayerImage" 
      android:layout_centerVertical="true"
      android:layout_marginLeft="5dp"
      android:layout_marginRight="10dp"/>
    <TextView
      android:id="@+id/GamePlayerName"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_toRightOf="@+id/GamePlayerBadge"
      android:layout_toLeftOf="@+id/GamePlayOpponent"
      android:layout_alignTop="@+id/GamePlayerBadge"
      android:ellipsize="marquee"
      android:singleLine="true"
      android:textStyle="bold"
      android:textColor="@color/darkbluetext"
      android:layout_marginTop="3dp"
      android:textSize="20dp" />
    <TextView
      android:id="@+id/GamePlayerScore"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_alignRight="@+id/GamePlayerName"
      android:layout_alignLeft="@+id/GamePlayerName"
      android:layout_below="@+id/GamePlayerName"
      android:ellipsize="marquee"
      android:singleLine="true"
      android:textStyle="bold"
      android:textColor="@color/darkbluetext"
      android:textSize="18dp" />
    <ImageView
      android:id="@+id/GamePlayOpponent"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:background="@android:color/transparent"
      android:layout_alignParentRight="true"
      android:layout_centerVertical="true"
      android:layout_marginLeft="5dp"
      android:layout_marginRight="5dp" />
</RelativeLayout>

私のAPIレベルは次のとおりです。

  <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="13" />

何か案は?

4

1 に答える 1

8

私のコメントから、 をサブクラス化ListViewしてオーバーライドしたonAttachedToWindow場合、そのメソッドが を呼び出すことを確認する必要があることがわかりましたsuper.onAttachedToWindow。私が使用していたライブラリはこれを行っておらず、あなたと同じ動作を見ていました。

于 2012-07-21T12:08:32.457 に答える