2017-06-03 75 views
1

我想从我的SQLite表中获取数据到List<string>,然后到ArrayAdapter<string>ListView。 如何使用ArrayAdapter将下面的代码拉到ListView从SQLite中获取数据到ArrayAdapter/ListView - Android的C#Xamarin

DB Helper.cs:

public List<string> getNoteList() 
    { 
     List<string> noteList = new List<string>(); 
     SQLiteDatabase db = this.ReadableDatabase; 
     ICursor cursor = db.Query(DB_TABLE, new string[] { DB_COLUMN}, null, null, null, null, null); 
     while (cursor.MoveToNext()) 
     { 
      int index = cursor.GetColumnIndex(DB_COLUMN); 
      noteList.Add(cursor.GetString(index)); 
     } 
     return noteList; 
    } 

正如你可以看到它被放入noteList,但我怎么会使得noteList进入一个ListView编写一个阵列适配器?

更新1: MainActivity.cs

public void LoadNoteList() 
     { 
      List<string> noteList = dbHelper.getNoteList(); 
      adapter = new ArrayAdapter<string>(this, Resource.Layout.list_black_text, noteList); 
      lvNotes.Adapter = adapter; 
     } 

错误:

Error Image

+0

'ArrayAdapter',使用'SimpleCursorAdapter',而不是当你的数据是基于Cursor'' – pskink

+0

究竟如何,我会添加一个'SimpleCursorAdapter'不使用? – DEFALT

+0

通过调用'ListView#setAdapter' – pskink

回答

0

变化noteList的类型ArrayList和在这个地方你的ListView被初始化

之后添加后续行
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, noteList); 
listview.setAdapter(adapter); 
+0

如何将'noteList'更改为'ArrayList'? – DEFALT

+0

请参阅**更新1 ** – DEFALT

0

try this here cards is my linked-list

final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, 
       android.R.layout.simple_list_item_single_choice); 
     for (MerchantCard card : cards) { 
      arrayAdapter.add(card.getName()); 
     } 

     ListView listView = (ListView) mView.findViewById(R.id.listView); 
     listView.setAdapter(arrayAdapter); 
     listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE); 

     listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
       selectedCardTypeId = cards.get(position).getId(); 
       Log.d("request", cards.get(position).getId() + " " + cards.get(position).getName()); 
      } 
     }); 
+0

请参阅**更新1 ** – DEFALT