【问题标题】:Listview from DB来自数据库的列表视图
【发布时间】:2023-03-26 08:30:01
【问题描述】:

我正在尝试从数据库中获取一些数据并显示在列表视图中,但他们 logcat 说确保光标在访问数据之前已正确初始化。这是我的代码

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_cotizacionescolumna);
    lvCotizacion = (ListView)findViewById(R.id.lista_cotizaciones);
    list_cotizaciones = new ArrayList<String>();
    llenarLista();
    eventos();
}

public void llenarLista(){

        CotiCadSqlite db = new CotiCadSqlite(CotizacionesColumnnaActivity.this);
        Cursor c = db.obtenerNombresColumna();

        if(c.moveToFirst()){
            do{
                columna = c.getString(1);
                list_cotizaciones.add(columna);
            }while (c.moveToNext());
        }
        adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list_cotizaciones);
        lvCotizacion.setAdapter(adapter);
}

【问题讨论】:

  • 你能发布你的 logcat 吗?
  • 请添加数据库查询。
  • 可以发obrenerNombresColumna()
  • c.getString(1);看来这一行是错误的,你需要在getString之前获取索引
  • 用西班牙语(或其他任何语言)编写代码,然后在英语社区寻求帮助是个坏主意。

标签: android sqlite listview


【解决方案1】:
 columna = c.getString(1);

c.getString(c.getColumnIndex(1))

还有

if (null != c) {
            if (c.moveToFirst()) {
                do {
                    //your code goes here


                } while (c.moveToNext());
            }
            c.close();

【讨论】:

  • 我尝试使用 c.getString(c.getColumnIndex(1)) 但该方法需要一个字符串而不是 int
  • 是的,这只会给出字符串值。您在该行中所说的 1 是什么意思,您必须在该位置传递列名而不是 1
【解决方案2】:

试试这样,

      Cursor c = helper.DatabaseMethod();// retrive data
                    c.moveToFirst();
                          while (c.isAfterLast() == false) 
         {

         String   dataSaved = c.getString(c.getColumnIndex(DataBaseHelper.KEY_EMAIL));//your column index name       
   list_cotizaciones.add(dataSaved );

                                   c.moveToNext();
                                  }
                                  c.close();

     adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list_cotizaciones);
               lvCotizacion.setAdapter(adapter);

【讨论】:

  • DatabaseConnector helper=new DatabaseConnector(this);获取我的数据库类
  • else ,尝试使用简单游标适配器从列表视图中的 db show 获取数据。 stackoverflow.com/a/30573420/4447803-易于实现
猜你喜欢
  • 2020-01-19
  • 2011-10-15
  • 1970-01-01
  • 2010-11-25
  • 1970-01-01
  • 1970-01-01
  • 2020-07-13
  • 2021-08-11
相关资源
最近更新 更多