2012-02-22 66 views
2

我有一个自定义的ListView这样的:如何设置CHOICE_MODE_MULTIPLE在定制的ListView

List<Journal_Database> values = localDatabase.getAllJournalNames(); 
ListView journalNames = (ListView)findViewById(R.id.JournalList); 
journalNames.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 
journalNames.setAdapter(new ArrayAdapter<Journal_Database>(
      this,R.layout.journal_name_list_black_text,R.id.list_content, values)); 

我怎么能设置CHOICE_MODE_MULTIPLE?

我尝试这样做:

journalNames.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 

但没有任何反应。

编辑:

我已经找到了解决方案,可以将choice_mode_multiple.xml文件从SDK文件夹复制到你的项目和改变它。

我现在有这样的:

<?xml version="1.0" encoding="utf-8"?> 

<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@android:id/text1" 
android:textColor="#000000" 
android:textSize="15dp" 
android:layout_width="match_parent" 
android:layout_height="?android:attr/listPreferredItemHeight" 
android:textAppearance="?android:attr/textAppearanceLarge" 
android:gravity="center_vertical" 
android:checkMark="?android:attr/listChoiceIndicatorMultiple" 
android:paddingLeft="6dip" 
android:paddingRight="6dip" 
/> 

并在Java代码:

List<Journal_Database> values = localDatabase.getAllJournalNames(); 
    ListView journalNames = (ListView)findViewById(R.id.JournalList); 
    journalNames.setAdapter(new ArrayAdapter<Journal_Database>(
      this,R.layout.simple_list_item_multiple_choice,android.R.id.text1, values)); 
    journalNames.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 

谢谢

回答

3

看这个link.it可能是有益的... http://www.vogella.de/articles/AndroidListView/article.html

这样的一些例子...

public class MyList extends ListActivity { 


/** Called when the activity is first created. */ 

public void onCreate(Bundle icicle) { 
    super.onCreate(icicle); 
    // Create an array of Strings, that will be put to our ListActivity 
    String[] names = new String[] { "Linux", "Windows7", "Eclipse", "Suse", 
      "Ubuntu", "Solaris", "Android", "iPhone", "Linux", "Windows7", 
      "Eclipse", "Suse", "Ubuntu", "Solaris", "Android", "iPhone" }; 
    setListAdapter(new ArrayAdapter<String>(this, 
      android.R.layout.simple_list_item_multiple_choice, 
      android.R.id.text1, names)); 
    ListView listView = getListView(); 
    listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 
} 

} 
+0

谢谢你的回答,我已经使用SDK中的choice_mode_simple.xml资助解决方案,然后修改这个问题。我会发布解决方案。 – 2012-02-22 08:57:02

+0

而不是复制该XML文件,你可以使用'android.R.layout.simple_list_item_single_choice' – 2014-12-12 12:07:47