【问题标题】:android sqlite read all rows at onceandroid sqlite一次读取所有行
【发布时间】:2011-09-17 23:06:17
【问题描述】:

有没有办法读取 sqlite 表中的所有行并在 textview 中一次显示它们? 这就是我阅读它们的方式,它逐行读取....

//---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();        
    } 

【问题讨论】:

    标签: java android sqlite jdbc


    【解决方案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);
    

    【讨论】:

      【解决方案2】:

      首先,您可能希望查看列表视图以轻松显示这样的数据列表。

      如果您的目标确实是在一个文本视图中显示所有信息(或您现在正在制作的 toast),您可以尝试制作一个大字符串,用它来创建 toast:

          //---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);        
      } 
      

      【讨论】:

        猜你喜欢
        • 2011-09-18
        • 1970-01-01
        • 1970-01-01
        • 2017-07-12
        • 1970-01-01
        • 1970-01-01
        • 2015-05-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多