安卓:变换光标的每列到一个String数组 [英] Android: transform each column of a cursor into a String array

查看:82
本文介绍了安卓:变换光标的每列到一个String数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

让我们说,如果这是我的code

 光标mCursor = dbAdapter.getAllTitles(); //返回3列,比如列1,列2,column3结果
 

有反正我可以分配从列1的值以1字符串数组,列2到另一个等等?也许像这样

 的String [] getColumn1 = mCursor.dataFrom(列1);
的String [] getColumn2 = mCursor.dataFrom(列2);
的String [] getColumn3 = mCursor.dataFrom(column3);
 

例子我看到,实现了上述相同的结果包括通过迭代数值并把它们放到相应阵列。过多消耗资源的,不是吗?那么它是更好地使单独的SQL查询各列,不是吗?

解决方案

 的ArrayList<字符串> columnArray1 =新的ArrayList<字符串>();
ArrayList的<字符串> columnArray2 =新的ArrayList<字符串>();
ArrayList的<字符串> columnArray3 =新的ArrayList<字符串>();
为(mCursor.moveToFirst(); mCursor.isAfterLast(); mCursor.moveToNext()){
    columnArray1.add(mCursor.getString(COLUM_INDEX1));
    columnArray2.add(mCursor.getString(COLUM_INDEX2));
    columnArray3.add(mCursor.getString(COLUM_INDEX3));
}
 

之后,您可以转换成ArrayList中的String数组:

 的String [] colStrArr1 =(字符串[])columnArray1.toArray(新的String [columnArray1.size());
 

let's say if this is my code

Cursor mCursor = dbAdapter.getAllTitles(); //returns results from 3 columns, eg column1, column2, column3

is there anyway I can assign the values from column1 to 1 string array, column2 to another and so on? perhaps like this

String[] getColumn1 = mCursor.dataFrom("column1");
String[] getColumn2 = mCursor.dataFrom("column2");
String[] getColumn3 = mCursor.dataFrom("column3");

examples i see to achieve the same result as above involves iterating through the values and put them into the respective array. too much resource consuming, no? then it's better to make separate sql query for each columns, no?

解决方案

ArrayList<String> columnArray1 = new ArrayList<String>();
ArrayList<String> columnArray2 = new ArrayList<String>();
ArrayList<String> columnArray3 = new ArrayList<String>();
for(mCursor.moveToFirst(); mCursor.isAfterLast(); mCursor.moveToNext()) {
    columnArray1.add(mCursor.getString(COLUM_INDEX1));
    columnArray2.add(mCursor.getString(COLUM_INDEX2));
    columnArray3.add(mCursor.getString(COLUM_INDEX3));
}

Afterwards you can convert the ArrayList into a String array:

String[] colStrArr1 = (String[]) columnArray1.toArray(new String[columnArray1.size()]);

这篇关于安卓:变换光标的每列到一个String数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆