2011-06-18 33 views
3

有沒有辦法讀取sqlite表中的所有行並在textview中一次顯示它們? 這是我閱讀並讀一行行....android sqlite一次讀取所有行

所有的
//---retrieves all the titles--- 
    public Cursor getAllTitles() 
    { 
     return db.query(DATABASE_TABLE, new String[] { 
       KEY_ROWID, 
       KEY_ISBN, 
       KEY_TITLE, 
       KEY_PUBLISHER}, 
       null, 
       null, 
       null, 
       null, 
       null); 

import android.app.Activity; 
import android.database.Cursor; 
import android.os.Bundle; 
import android.widget.Toast; 

public class DatabaseActivity extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     DBAdapter db = new DBAdapter(this); 

     //---get all titles--- 
     db.open(); 
     Cursor c = db.getAllTitles(); 
     if (c.moveToFirst()) 
     { 
      do {   
       DisplayTitle(c); 
      } while (c.moveToNext()); 
     } 
     db.close(); 
    }  
} 

public void DisplayTitle(Cursor c) 
    { 
     Toast.makeText(this, 
       "id: " + c.getString(0) + "\n" + 
       "ISBN: " + c.getString(1) + "\n" + 
       "TITLE: " + c.getString(2) + "\n" + 
       "PUBLISHER: " + c.getString(3), 
       Toast.LENGTH_LONG).show();   
    } 

回答

7

首先,你可能想看看列表視圖,可以輕鬆地顯示這樣的數據的列表。

如果你的目標真的是要顯示一個TextView的所有信息(或者你現在做烤麪包),你可以嘗試做一個大的字符串,與您共創敬酒:

//---get all titles--- 
    db.open(); 
    Cursor c = db.getAllTitles(); 
    String text = ""; 
    if (c.moveToFirst()) 
    { 
     do {   
      DisplayTitle(c, text); 
     } while (c.moveToNext()); 
    } 
    db.close(); 
    Toast.makeText(this, text, Toast.LENGTH_LONG).show(); 
} 

public void DisplayTitle(Cursor c, String text) 
{ 
    text += 
      "id: " + c.getString(0) + "\n" + 
      "ISBN: " + c.getString(1) + "\n" + 
      "TITLE: " + c.getString(2) + "\n" + 
      "PUBLISHER: " + c.getString(3);   
} 
1
db.getReadableDatabase(); 
StringBuffer sb=new StringBuffer(); 
Cursor c=db.rawQuery(SELECT * FROM TABLE_NAME); 
while(c.moveToNext){ 
sb.append(c.getString(0);//c.getString(Column Index) 
sb.append(c.getString(1); 
//getString(till n number of Columns you have) 
} 
textView.setText(sb);