2015-06-19 52 views
1

我從數據庫表中獲取數據,並在ListView中查看它們。現在我想用默認值添加一行到Listview,即使數據庫爲空,它也必須始終可見。我能怎麼做?這是爲了將數據插入到列表視圖具有默認值的Android 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); 
} 
+0

使用dettagli。在while循環開始之前添加(def_value) – Harish

+0

難道你不能在while循環之前添加一個'新的Dettaglio'嗎? – Blackbelt

回答

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