如何在java android上操作数组值

问题描述 投票:0回答:4

我有一个从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]

如何操纵它?

enter image description here

谢谢

java android sqlite spinner
4个回答
2
投票

你在column 0中添加了两列column 1labels

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)));

返回数组列表并使用它:)


0
投票

您正在添加来自column 0column 1列的值。如果您只需要来自column 1的值,请不要添加column 0

更改代码以添加项目,如下所示

labels.add(cursor.getString(1));

0
投票

您还可以在getSpinnerSupir方法中从游标获取值时使用列名。

而不是线下;

labels.add(cursor.getString(0)+ cursor.getString(1));

使用类似的东西;

labels.add(cursor.getString(cursor.getColumnIndex("your_column_name"));

0
投票

您似乎只想要每条记录中的第二列。在致电:labels.add(cursor.getString(0)+cursor.getString(1));时,您会得到您不想要的号码。 相反,用labels.add(cursor.getString(1));替换

© www.soinside.com 2019 - 2024. All rights reserved.