2017-03-14 82 views
-1

我一直在尋找使我的listview工作的方式。我用了幾乎所有我知道的東西和我在這裏看到的東西。我使用了代碼和XML標籤,但它仍然不起作用。我一直在改變在xml中放置那些blockdecendants,focusable,clickable標籤的位置。如何使listview onitemclicklistener工作?

這裏是我的相關代碼:

lstMeals = (ListView)findViewById(R.id.lstMeals); 

lstMeals.setItemsCanFocus(true); 
lstMeals.setChoiceMode(ListView.CHOICE_MODE_SINGLE); 

這是與列表視圖的XML:

<?xml version="1.0" encoding="utf-8"?> 
<com.flipboard.bottomsheet.BottomSheetLayout 
    android:id="@+id/bottomsheet" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 
    <RelativeLayout android:id="@+id/RelativeLayout01" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"> 

     <ProgressBar 
      android:id="@+id/pgMeals" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:visibility="invisible" 
      android:layout_centerInParent="true" /> 

     <TextView 
      android:id="@+id/txtMNoRecord" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:visibility="invisible" 
      android:layout_centerInParent="true" /> 

     <ListView 
      android:id="@+id/lstMeals" 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:clickable="true"/> 

    </RelativeLayout> 
</com.flipboard.bottomsheet.BottomSheetLayout> 

這是適配器的佈局:

<?xml version="1.0" encoding="utf-8"?> 
<com.flipboard.bottomsheet.BottomSheetLayout 
    android:id="@+id/bottomsheet" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:clickable="false" 
    android:focusable="false" 
    android:focusableInTouchMode="false" 
    android:descendantFocusability="blocksDescendants"> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

     <RelativeLayout 
      android:id="@+id/mealInfo" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:padding="16dp"> 

      <RelativeLayout 
       android:id="@+id/relativeLayout" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentLeft="true" 
       android:layout_alignParentStart="true" 
       android:layout_alignParentTop="true"> 

       <ImageView 
        android:id="@+id/imgMeal" 
        android:layout_width="200dp" 
        android:layout_height="200dp" 
        android:layout_alignParentLeft="true" 
        android:layout_alignParentStart="true" 
        android:layout_alignParentTop="true" 
        android:layout_marginRight="8dp" 
        android:clickable="false" 
        android:focusable="false" 
        android:focusableInTouchMode="false"/> 

       <RelativeLayout 
        android:id="@+id/picLayout" 
        android:layout_width="200dp" 
        android:layout_height="70dp" 
        android:layout_alignBottom="@+id/imgMeal" 
        android:layout_alignParentBottom="false" 
        android:layout_alignParentLeft="true" 
        android:layout_alignParentStart="true"> 

        <TextView 
         android:id="@+id/txtWatermark" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_alignParentEnd="true" 
         android:layout_alignParentLeft="true" 
         android:layout_alignParentRight="true" 
         android:layout_alignParentStart="true" 
         android:layout_centerVertical="true" 
         android:gravity="center" 
         android:paddingLeft="5dp" 
         android:paddingRight="5dp" 
         android:text="Large Text" 
         android:textColor="#ffffff" 
         android:textSize="25sp" 
         android:textStyle="bold" 
         android:textIsSelectable="false"/> 

        <TextView 
         android:id="@+id/txtWatermark2" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_alignParentLeft="true" 
         android:layout_alignParentStart="false" 
         android:layout_centerVertical="true" 
         android:gravity="center_vertical|center_horizontal" 
         android:text="Large Text" 
         android:textSize="30sp" 
         android:textStyle="bold" 
         android:visibility="gone" 
         android:textIsSelectable="false"/> 
       </RelativeLayout> 
      </RelativeLayout> 

      <TextView 
       android:id="@+id/adptrMealName" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_alignParentTop="true" 
       android:layout_marginBottom="8dp" 
       android:layout_toEndOf="@+id/relativeLayout" 
       android:layout_toRightOf="@+id/relativeLayout" 
       android:text="TextView" 
       android:textColor="@color/black80" 
       android:textSize="24sp" 
       android:textStyle="bold" 
       android:textIsSelectable="false"/> 

      <TextView 
       android:id="@+id/txtMealDesc" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_alignParentEnd="true" 
       android:layout_alignParentRight="true" 
       android:layout_below="@+id/txtMealPrice" 
       android:layout_marginBottom="10dp" 
       android:layout_toEndOf="@+id/relativeLayout" 
       android:layout_toRightOf="@+id/relativeLayout" 
       android:text="TextView" 
       android:textColor="@color/black70" 
       android:textSize="24sp" 
       android:textIsSelectable="false"/> 

      <Button 
       android:id="@+id/btnViewIngredients" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignParentEnd="true" 
       android:layout_alignParentRight="true" 
       android:layout_below="@+id/txtMealDesc" 
       android:paddingBottom="15dp" 
       android:paddingLeft="15dp" 
       android:paddingRight="15dp" 
       android:paddingTop="15dp" 
       android:text="View Ingredients" 
       android:clickable="false" 
       android:focusable="false" 
       android:focusableInTouchMode="false"/> 

      <TextView 
       android:id="@+id/txtMealPrice" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_alignParentEnd="true" 
       android:layout_alignParentRight="true" 
       android:layout_below="@+id/adptrMealName" 
       android:layout_marginBottom="8dp" 
       android:layout_toEndOf="@+id/relativeLayout" 
       android:layout_toRightOf="@+id/relativeLayout" 
       android:text="TextView" 
       android:textColor="@color/black70" 
       android:textSize="24sp" 
       android:textIsSelectable="false"/> 
     </RelativeLayout> 

    </RelativeLayout> 
</com.flipboard.bottomsheet.BottomSheetLayout> 
+0

在您的適配器類中的點擊監聽器底部表單上寫下 – user2025187

+0

爲什麼我應該放一個onclicklistener?不能正常工作的是listview。 –

回答

0

非常感謝您的幫助。我已經找到了答案。問題是由底部的引起的。它沒有被適配器使用,因爲活動是顯示底部表格的活動。這段代碼是我朋友的代碼,這就是爲什麼我不知道有關它的一些事情。

0

這可能工作.....

clubList = (ListView) dialog.findViewById(R.id.club_listview_dialog); 
    clubList.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
      //postion is the position of item clicked in the list 
     } 
    }); 
+0

嗨AwaisMajeed,感謝您的幫助。我試過這個,但它仍然不起作用 –

+0

你能告訴我最新的錯誤? – AwaisMajeed

0

將此信息添加到您的onCreate。

lstmeals.setOnItemClickListener(new OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, 
        long id) { 

        Toast.makeText(getApplicationContext(), "Position->" + position + "is selected.", Toast.LENGTH_SHORT).show(); 

      } 
     }); 

希望這會有所幫助。

+0

感謝tahsinRupam,但它只允許adapterview.onitemclicklistener –

+0

@RickyManalo,'ListView'擴展'AdapterView',所以每個ListView'也是'AdapterView'。 –

+0

哦,我明白了,謝謝@VladMatvienko –

相關問題