Android Listview数据库具有默认值

时间:2015-06-19 18:08:16

标签: android database string listview

我从数据库表中获取数据,然后在ListView中查看它们。现在我想在Listview中添加一行默认值,即使数据库为空,也必须始终可见。我能怎么做?这是将数据插入Listview

的方法

这是字符串,我想包含在Listview

String defaultValue = "MyString";

 private void lista_anni() {
    SQLiteDatabase db = new DatabaseHelper(this).getReadableDatabase();
    final List<Dettaglio1> dettagli = new ArrayList<Dettaglio1>();
    String sql = "SELECT strftime('%Y'," + Table.DATA + ") AS anno FROM Mov GROUP BY anno ORDER BY anno DESC";
    Cursor c = db.rawQuery(sql, null);
    while (c.moveToNext()) {
        Dettaglio1 d = new Dettaglio1();
        d.anno = c.getInt(0);
        dettagli.add(d);
    }

    c.close();
    db.close();
    ListAdapter adapter = new ArrayAdapter<Dettaglio1>(this, R.layout.dettaglio_elenco_operatori_statistiche, R.id.tv_nome_categoria, dettagli) {

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            View row = super.getView(position, convertView, parent);
            TextView tv_Anno;

            tv_Anno = (TextView) row.findViewById(R.id.tv_nome_categoria);

            final Dettaglio1 d = dettagli.get(position);
            String annotv_ = String.valueOf(d.anno);
            tv_Anno.setText(annotv_);
            listaAnni.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {


            }
            });
            return row;
        }

    };
    listaAnni.setAdapter(adapter);
}

1 个答案:

答案 0 :(得分:0)

只需将默认值添加到列表中:

   SQLiteDatabase db = new DatabaseHelper(this).getReadableDatabase();
   final List<Dettaglio1> dettagli = new ArrayList<Dettaglio1>();

   Dettaglio1 default = new Dettaglio1();
   default.anno = my_default_value;

   dettagli.add(default);   // add here for first position

   String sql = "SELECT strftime('%Y'," + Table.DATA + ") AS anno FROM Mov GROUP BY anno ORDER BY anno DESC";
   Cursor c = db.rawQuery(sql, null);
   while (c.moveToNext()) {
       Dettaglio1 d = new Dettaglio1();
       d.anno = c.getInt(0);
       dettagli.add(d);
   }

   dettagli.add(default); // add here for last position
相关问题