Как манипулировать значением массива на Android Java - PullRequest
0 голосов
/ 19 марта 2019

У меня есть массив от возвращаемого значения 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

Спасибо

Ответы [ 4 ]

2 голосов
/ 19 марта 2019

Вы добавляете два столбца column 0 и column 1 в labels

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

Таким образом, у вас есть идентификаторы в виде столбца 0, поэтому он добавляется вместе со строкой

Измените его на

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

Редактировать

, возвращая идентификатор и имя

, создать класс, подобный приведенному ниже

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 голосов
/ 19 марта 2019

Похоже, вам нужен только второй столбец из каждой записи. При звонке: labels.add(cursor.getString(0)+cursor.getString(1)); Вы получаете числа, которые вы не хотите.
Вместо этого замените на labels.add(cursor.getString(1));

0 голосов
/ 19 марта 2019

Вы также можете использовать имя столбца при получении значения от курсора в вашем методе getSpinnerSupir .

Вместо строки ниже;

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

Использовать что-токак;

labels.add(cursor.getString(cursor.getColumnIndex("your_column_name"));
0 голосов
/ 19 марта 2019

Вы добавляете значения из обоих столбцов column 0 и column 1.Если вам нужны значения только от column 1, не добавляйте column 0 значения

Измените код для добавления элементов следующим образом

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