我有一个从SQLite返回值到Spinner传递的数组
在DatabaseHelper.java
我创造了1个空虚
public List<String> getSpinnerSupir(){
List<String> labels = new ArrayList<String>();
// Select All Query
String selectQuery = "SELECT * FROM " + "sopir";
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
// looping through all rows and adding to list
if (cursor.moveToFirst()) {
do {
labels.add(cursor.getString(0)+cursor.getString(1));
} while (cursor.moveToNext());
}
// closing connection
cursor.close();
db.close();
// returning lables
return labels;
}
我使用标签值在Spinner上显示
List<String> lables = db.getSpinnerSupir();
Log.d("array:", String.valueOf(lables));
并在日志显示
[1Juniarto, 2Agus Haryanto, 3Supriadi, 4Cahyanto]
我需要操纵
[Juniarto, Agus Haryanto, Supriadi, Cahyanto]
如何操纵它?
谢谢
你在column 0
中添加了两列column 1
和labels
labels.add(cursor.getString(0)+ cursor.getString(1));
所以你有ID作为第0列,所以它与字符串一起被添加
将其修改为
labels.add(cursor.getString(1));
编辑
返回id和name
创建一个类如下
class Data {
private String id;
private String label;
public Data(String id,String label){
this.id=id;
this.label=label;
}
}
将数据插入到类中
ArrayList<Data> arrayList=new ArrayList<Data>();
arrayList.add(new Data(cursor.getString(0),cursor.getString(1)));
返回数组列表并使用它:)
您正在添加来自column 0
和column 1
列的值。如果您只需要来自column 1
的值,请不要添加column 0
值
更改代码以添加项目,如下所示
labels.add(cursor.getString(1));
您还可以在getSpinnerSupir方法中从游标获取值时使用列名。
而不是线下;
labels.add(cursor.getString(0)+ cursor.getString(1));
使用类似的东西;
labels.add(cursor.getString(cursor.getColumnIndex("your_column_name"));
您似乎只想要每条记录中的第二列。在致电:labels.add(cursor.getString(0)+cursor.getString(1));
时,您会得到您不想要的号码。
相反,用labels.add(cursor.getString(1));
替换