2014-10-30 106 views
0

我遇到了一個問題,我有一點麻煩解決。我已經實現了一個使用arrayadapter的自定義listivew,讓我可以獲得包含5個圖像和兩個文本字段的行。他們看起來像下面的圖片... ​​與arrayadapter的列表視圖上的多個選擇

我想要做的是能夠同時選擇多行(並保持它們突出顯示,直到我執行某種操作或者使用選項菜單或一個按鈕,但我似乎無法選擇多個項目,即使我已啓用android:choiceMode="multipleChoice"。另外,我的佈局中不能有複選框,所以我希望能夠突出顯示沒有它的行。下方。

我想我試圖找出如何選擇多個項目,而不使用複選框。感謝

row_format.xml

<?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="wrap_content" 
    android:orientation="horizontal" 
    android:padding="5dip" > 

    <!-- ListRow Left side Thumbnail image --> 
    <LinearLayout android:id="@+id/thumbnail" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:padding="3dip" 
     android:layout_alignParentLeft="true" 
     android:layout_marginRight="5dip"> 
     <ImageView 
      android:id="@+id/h_image" 
      android:layout_width="50dip" 
      android:layout_height="50dip" /> 
    </LinearLayout> 

    <TextView 
     android:id="@+id/h_name" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignTop="@+id/thumbnail" 
     android:layout_toRightOf="@+id/thumbnail" 
     android:textColor="#040404" 
     android:typeface="sans" 
     android:textSize="20dip" 
     android:layout_marginTop="5dip" 
     android:textStyle="bold"/> 

    <TextView 
     android:id="@+id/h_address" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/h_name" 
     android:textColor="#343434" 
     android:textSize="12dip" 
     android:layout_marginTop="1dip" 
     android:layout_toRightOf="@+id/thumbnail" /> 

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

    <ImageView 
     android:id="@+id/h_low_battery" 
     android:layout_width="35dp" 
     android:layout_height="35dp" 
     android:layout_alignParentRight="true" 
     android:layout_marginRight="45dp" 
     android:layout_centerVertical="true" /> 

    <ImageView 
     android:id="@+id/h_low_disk" 
     android:layout_width="35dp" 
     android:layout_height="35dp" 
     android:layout_alignParentRight="true" 
     android:layout_marginRight="85dp" 
     android:layout_centerVertical="true" /> 

    <ImageView 
     android:id="@+id/h_streaming" 
     android:layout_width="35dp" 
     android:layout_height="35dp" 
     android:layout_alignParentRight="true" 
     android:layout_marginRight="125dp" 
     android:layout_centerVertical="true" /> 
</RelativeLayout> 

activity_main.xml中

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <ListView 
     android:id="@+id/Hlist" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:paddingTop="5dp" 
     android:choiceMode="multipleChoice" > 
    </ListView> 

</LinearLayout> 

回答

0

如果我理解正確的:你可以顏色的物品和商店挑選位置

List<Integer> selected; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    selected = new ArrayList<Long>(); 
    listView.setOnItemClickListener(new OnItemClickListener() { 

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

      view.setBackgroundColor(Color.BLUE); //mark clicked row 
      selected.add(id); //store position of clicked row and to something with it at the end 
     } 
    }); 
    } 
+0

如果您有任何問題,只是問 – 2014-10-30 19:48:09

+0

謝謝。這正是我需要的。簡單而完美。再次感謝。 – Willis 2014-10-30 20:50:17