2015-02-09 46 views
0

請注意,這真的很奇怪。SetChoiceMode()在我的ListView中的問題

由於某種原因,setChoiceMode(ListView.CHOICE_MODE_SINGLE)方法沒有結果。

我用這樣的:

list = (ListView) findViewById(R.id.list); 
list.setChoiceMode(ListView.CHOICE_MODE_SINGLE); 
list.setOnItemClickListener(OnItemClickListenerObject); 
list.setAdapter(adapter); 

事實是,之後我把方法setChoiceMode(),一切都沒有改變,單選按鈕沒有出現。 我正在使用自定義適配器,我沒有問題嗎?但我不明白爲什麼Radibuttons沒有顯示。

任何想法? (如果你需要額外的代碼,問我會張貼。)

我的適配器代碼:

public class ContactAdapter extends BaseAdapter { 

private LayoutInflater inflater; 
private ArrayList<Contact> contacts; 
private View view; 

public ContactAdapter(Context context, ArrayList<Contact> contacts) { 
    this.contacts = contacts; 
    inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
} 

@Override 
public int getCount() { 
    return contacts.size(); 
} 

@Override 
public Object getItem(int position) { 
    return contacts.get(position); 
} 

@Override 
public long getItemId(int position) { 
    return position; 
} 

private Contact getContact(int position) { 
    return (Contact) getItem(position); 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    view = convertView; 
    if (view == null) { 
     view = inflater.inflate(R.layout.contact_item, parent, false); 
    } 

    Contact c = getContact(position); 
    ((TextView) view.findViewById(R.id.lv_name)).setText(c.getName() + " " + c.getSurname()); 
    ((ImageView) view.findViewById(R.id.lv_img)).setImageBitmap(c.getPhoto()); 

    return view; 
} 
} 

下面顯示了我使用的ListView項的佈局。

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:layout_margin="8dp"> 

<ImageView 
    android:id="@+id/lv_img" 
    android:layout_width="75dp" 
    android:layout_height="75dp" 
    android:src="@drawable/default_user" 
    android:layout_weight="0"/> 

<TextView 
    android:id="@+id/lv_name" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" 
    android:layout_margin="16dp" 
    android:layout_gravity="center_vertical" 
    android:textSize="24sp"/> 

</LinearLayout> 
+0

你從什麼類延伸? – Josef 2015-02-09 20:23:22

+0

MyActivity擴展ActionBarActivity和MyAdapter擴展BaseAdapter – Fredisson 2015-02-09 21:11:26

回答

0

設置選擇模式不會自動顯示單選按鈕。它所做的只是添加一個行爲,該行爲切換了ListView行的Checkable或激活狀態。這仍然取決於該行的View決定如何對此做出反應。您需要創建自己的佈局,以便爲支持激活狀態或Checkable接口的行充氣。

Android確實提供了一些您可以使用的簡單預製視圖。這裏只是你可以選擇的一對夫婦:

android.R.layout.simple_list_item_activated_1.xml 
android.R.layout.simple_list_item_checked.xml 
+0

如何在我的適配器中使用它? – Fredisson 2015-02-10 08:26:24

+0

我應該如何修復我的適配器才能使其正常工作。 (我發佈我的適配器代碼) – Fredisson 2015-02-10 08:37:32