我有一个从sqlite查询返回ArrayList的方法,只有1行,这个数组必须有3个字符串;名称,描述和照片(这是一个补丁字符串)。但我不知道如何分离数据。
public ArrayList<Object> getLugarPorNombre(String nombre)
{
ArrayList<Object> rowArray = new ArrayList<Object>();
Cursor cursor;
try
{
cursor = db.query
(
TABLE_NAME,
new String[] { TABLE_ROW_ID, CNOMBRE, CDESC, CFOTO },
CNOMBRE + "=" + nombre,
null, null, null, null, null
);
//movemos el puntero a la primera posicion
cursor.moveToFirst();
// Si hay datos los añado al array que sera devuelto
if (!cursor.isAfterLast())
{
do
{
rowArray.add(cursor.getLong(0));
rowArray.add(cursor.getString(1));
rowArray.add(cursor.getString(2));
rowArray.add(cursor.getString(3));
}
while (cursor.moveToNext());
}
cursor.close();
}
catch (SQLException e)
{
Log.e("Error obteniendo datos de lugar", e.toString());
e.printStackTrace();
}
return rowArray;
}
和
ayudabbdd = new DataBaseHelper(this);
ArrayList<Object> datosLugar = ayudabbdd.getLugarPorNombre(nombreClick);
我可以从单独的字符串中获取数组列表或描述中的名称吗?
答案 0 :(得分:2)
你的意思是这样的:
String name = (String) datosLugar.get(1);
String description = (String) datosLugar.get(2);
你必须确定元素1&amp; 2总是字符串othweise你会得到一个ClassCastException。如果你想让它更干净,你可以为你的返回类型创建一个自己的类。
答案 1 :(得分:0)
当然可以。但是你的ArrayList有4个项目,而不是你在上面的问题中提到的3个项目。你必须像这样玩ArrayList
String name=datosLugar.get(1).toString();
String description=datosLugar.get(2).toString();