2013-04-17 128 views
0

請原諒我的英文,我是法國人!Android listview onItemClickListener無效

我有一個列表視圖,我想要顯示一個項目上單擊其他活動。 但onItemClickListener似乎不起作用... 我在Google上搜索,但我什麼也沒找到。

這裏我的代碼:

的XML ListView控件(自定義):

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/activity_advert_list_listview" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:background="@color/background" > 

<RelativeLayout 
    android:id="@+id/advertBackground" 
    android:layout_width="339dp" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:layout_marginBottom="7.5dp" 
    android:layout_marginTop="7.5dp" 
    android:background="@drawable/background_advert_list" > 

    <RelativeLayout 
     android:id="@+id/advertImageLayout" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="8dp" > 

     <RelativeLayout 
      android:id="@+id/advertBackgroundLayout" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:background="@color/grey" > 

      <ImageView 
       android:id="@+id/advertImage" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" /> 
     </RelativeLayout> 

     <RelativeLayout 
      android:id="@+id/advertPriceLayout" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/advertImage" 
      android:layout_marginTop="-30.5dp" 
      android:background="@color/white_50" > 

      <TextView 
       android:id="@+id/advertPriceText" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_centerHorizontal="true" 
       android:hint="@string/Price" 
       android:paddingBottom="5dp" 
       android:paddingLeft="7dp" 
       android:paddingRight="7dp" 
       android:paddingTop="3dp" 
       android:textSize="14dp" 
       android:textStyle="bold" /> 
     </RelativeLayout> 
    </RelativeLayout> 

    <RelativeLayout 
     android:id="@+id/advertInfosLayout" 
     android:layout_width="305dp" 
     android:layout_height="47dp" 
     android:layout_below="@+id/advertImageLayout" 
     android:layout_centerHorizontal="true" 
     android:layout_marginBottom="10dp" 
     android:layout_marginTop="10dp" > 

     <RelativeLayout 
      android:id="@+id/advertInfosLayoutLayout" 
      android:layout_width="225dp" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/advertImageLayout" > 

      <TextView 
       android:id="@+id/advertTitleText" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:hint="@string/Product_name" 
       android:textColor="@color/grey_blue" 
       android:textSize="15sp" 
       android:textStyle="bold" /> 

      <TextView 
       android:id="@+id/advertSizeText" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_below="@+id/advertTitleText" 
       android:hint="@string/Product_infos" 
       android:textColor="@color/b4b5b6" 
       android:textSize="15sp" /> 
     </RelativeLayout> 

     <RelativeLayout 
      android:id="@+id/advertBookmarkLayout" 
      android:layout_width="74dp" 
      android:layout_height="45dp" 
      android:layout_toRightOf="@+id/advertInfosLayoutLayout" > 

      <Button 
       android:id="@+id/advertBookmarkIcon" 
       android:layout_width="26dp" 
       android:layout_height="26dp" 
       android:layout_centerVertical="true" 
       android:background="@drawable/bookmark" /> 
     </RelativeLayout> 

     <RelativeLayout 
      android:id="@+id/advertDistanceLayout" 
      android:layout_width="50dp" 
      android:layout_height="wrap_content" 
      android:layout_alignParentRight="true" > 

      <Button 
       android:id="@+id/advertDistanceIcon" 
       android:layout_width="26dp" 
       android:layout_height="26dp" 
       android:layout_centerHorizontal="true" 
       android:background="@drawable/distance" /> 

      <TextView 
       android:id="@+id/advertDistanceText" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_below="@+id/advertDistanceIcon" 
       android:layout_centerHorizontal="true" 
       android:text="13 km" 
       android:textColor="@color/grey_midark" 
       android:textSize="11sp" /> 
     </RelativeLayout> 
    </RelativeLayout> 
</RelativeLayout> 

的Java代碼:

list.setOnItemClickListener(new OnItemClickListener() { 

    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
     // Start new detail activity 
     Intent intent = new Intent(activity, AdvertDetailActivity.class); 
     startActivity(intent); 

     Log.w("AdvertList", "Item clicked"); 
    } 
}); 

你有一個想法? 非常感謝!

+1

無法正常工作..?發生了什麼..?什麼是活動? – Pragnani

+0

嘗試在XML中添加'android:clickable =「true」'。 – Cornholio

+0

請張貼更多代碼。 – sujith

回答

4

如果您要添加按鈕/複選框到ListView行,你應該在XML中添加此對他們說:

android:focusable="false" 

爲什麼?由於您有2個點擊區域,按鈕和行本身,因此您必須將行作爲主體觸摸區域。

試試看看它是否有效。

另一方面,您在xml中有太多的ViewGroups(RelativeLayouts),這會使繪製過程變慢。只有一個(也許一些LinearLayouts,如果你真的需要它們)應該就足夠了。

+0

不,它不工作...而對於您的其他解決方案,我不能這樣做......:/ –

+0

我與@Shyish agrre這許多viewGroups是真的很糟糕的設備呈現,如果你超過50行,你的應用程序可能會由於缺乏內存而崩潰。嘗試使用ViewHierarchy Toolto來減少它。 – Ankit

相關問題