2011-03-29 29 views
1

這裏是ListAdapter,我試圖綁定我的ListView。來自SimpleCursorAdapter的子字符串?

ListAdapter adapter = new SimpleCursorAdapter(this, R.layout.my_item,c,new String[] {"title","body"}, 
new int[] { R.id.TextView_Title,R.id.TextView_Body}); 
setListAdapter(adapter); 

This Works。但我堅持我認爲應該很簡單。我想要做的是顯示標題,同時顯示正文的子字符串(比如說前10/15個字符)。我如何在這種情況下做到這一點?我是否可以直接操縱遊標,以便在第一個位置返回一個子字符串,或者在遊標返回值之後必須執行該操作(在這種情況下,該怎麼做?)。謝謝您的幫助。

回答

1

編輯:好吧,對不起,我以爲你想'得到'的身體列的子字符串,但你想'設置'它的子字符串?

對您的活動實施SimpleCursorAdapter.ViewBinder並覆蓋setViewValue()

在代碼中的某些時候,你需要使用...

adapter.setViewBinder(this); // Put this on onCreate() perhaps 

...和代碼將類似於此...

public class MyActivity extends Activity 
    implements SimpleCursorAdapter.ViewBinder { 

    @Override 
    public boolean setViewValue(View view, Cursor cursor, int column) { 
     int bodyColumn = cursor.getColumnIndex("body"); 
     if (column == bodyColumn) { 
      String bodyString = cursor.getString(bodyColumn); 
      ((TextView)view).setText(bodyString.subString(0, 10)); 

      return true; // Return true to show you've handled this column 
     } 
     return false; 
    } 
} 
+0

很抱歉,如果它是一個noob問題,但如何將這兩個字段綁定到我的ListView呢?我猜這裏的代碼在我需要返回一個或一組特定的行時可以正常工作。我可能是錯的(並且困惑:-)但是我的列表可能包含數百個或更多的項目。我需要獲取子字符串,然後將這些數據與列表視圖綁定,或者如果我必須這樣做,那麼如何設置適配器? – redGREENblue 2011-03-29 17:11:47

+0

@redGREENblue:對不起 - 查看我上面的修改。 – Squonk 2011-03-29 17:33:39

+0

謝謝MisterSquonk。但是我無法完全像這樣工作。但是這幫助我尋找正確的方向並找到解決方案。另外,這可能是因爲我的Java知識非常有限,所以我傾向於誤解事物。無論如何,你的答案和這裏的線程(http://stackoverflow.com/questions/1505751/android-binding-data-from-a-database-to-a-checkbox-in-a-listview)解決了這個問題。 – redGREENblue 2011-03-30 13:20:53

相關問題