Android - ListView onItemClick () doesn't shoot 4.1 jellybean

I had a user just setting 4.1 (jelly bean) and ListView onItemClick () stopped working in my application. The event does not fire (it is checked by a breakpoint and the console), and the user interface does not seem to change explicitly. So I tried in the emulator (although it is incredibly slow) and got the same problem.

Has anyone noticed the difference in the new OS?

There is nothing customizable in my object layout, and it works great on older OSs.

Here is the layout containing the 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> 

Here is the element layout:

 <?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> 

My API Level:

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

Any ideas?

+6
source share
1 answer

From my comments, I found that if you have subclasses of ListView and overridden onAttachedToWindow , you need to make sure that the method calls super.onAttachedToWindow . The library I used did not do this, and I saw the same behavior as you.

+8
source

Source: https://habr.com/ru/post/920322/


All Articles