2016-12-30 52 views
0

我的問題是,當我從sqlite數據庫存儲數據到數組,我怎麼能從特定位置得到它說,我的數據庫包含「食物,飲料,小吃」我怎麼能從數組中獲取字符串「點心」。我怎麼能從數組中獲得具體數據

String CatNameQuery = "SELECT * FROM Category"; 
    db = new DBController(MainActivity.this); 
    SQLiteDatabase db3 = db.getReadableDatabase(); 
    final Cursor cursor2 = db3.rawQuery(CatNameQuery, null); 
    { 
     List<String> array = new ArrayList<String>(); 

     while(cursor2.moveToNext()){ 
      String uname = cursor2.getString(cursor2.getColumnIndex("CategoryName")); 
      array.add(uname); 

    } 
+1

通過使用array.get(位置)發現它;你會從特定的位置得到具體的數據。 –

+0

@snehadesai,謝謝array.get(position);是我的工作 – AnthonyTang

回答

0

您需要遍歷列表才能找到要查找的項目。

例如:

for (String s : array) { 
    if (s.equals("snack")) { 
     System.out.println("Found snack"); 
    } 
} 

您還可以使用contains方法來檢查列表包含「小吃。」

if (array.contains("snack")) { 
    System.out.println("Found snack"); 
} 

資源:ArrayList

0
List<String> array = new ArrayList<String>(); 
array.add("food"); 
array.add("drinks"); 
array.add("snack"); 
String result=""; 
if (array.contains("snack")) // avoid null pointer exception 
{ 
int index =array.indexOf("snack") //find the index of arraylist 

result=array.get(index); 
} 
0

使用你的SELECT查詢中的WHERE子句。例如:

"SELECT * FROM Category WHERE CategoryName='snacks'" 

這將填充您的陣列只有「小吃」類別下的項目。

+0

我想循環所有的數據並傳遞給特定的文本視圖。這是我不能使用這個查詢 – AnthonyTang

+0

然後,你將確實需要迭代通過數組,如其他人已經證明。 – DevilsHnd

0

可以通過循環陣列

List<String> arrobj= new ArrayList<String>(); 
arrobj.add("food"); 
arrobj.add("drinks"); 
arrobj.add("snack"); 
for (String value : arrobj) { 
if (value.equals("snack")) { 
    System.out.println("Here is the snack"); 
} 
} 
0
if (array.size() > 0) { 
    int index = 0; 
    if (array.contains("Snacks")) { 
     index = array.indexOf("Snacks"); 
     System.out.println(array.get(index)); 
    } 
}