Изменение строки из полученных столбцов sqlite - PullRequest
0 голосов
/ 23 сентября 2018

Я хотел бы изменить строки, извлекаемые из sqlite с помощью адаптера курсора

Я использую это для извлечения данных:

    String query = "SELECT _id, month, year, SUM(valor) AS valor, SUM(total_valor) AS total_valor FROM records GROUP BY month";
    Cursor cursor = db.rawQuery(query, null);

    String month_st = cursor.getString(1);
    String year_st = cursor.getString(2);
    String valor_st= cursor.getString(3);
    String total_valor_st = cursor.getString(4);

    String date = month_st + " - " +year_st;
    String valor_st_final = valor_st+ "(" +total_valor_st +")";

У меня есть пользовательский список, который я загружаюв просмотр списка с двумя текстовыми представлениями, которые похожи на это, и пробовали так:

    ListAdapter adapter = new SimpleCursorAdapter(ReportMes.this,
            R.layout.report_mes,
            cursor,
            new String[] {"date", "valor_st_final"},
            new int[] {R.id.data_mes, R.id.total_valor});


    listview.setAdapter(adapter);

Но это не работает.Как мне этого добиться.

Ответы [ 2 ]

0 голосов
/ 23 сентября 2018

Вы можете сделать это в самом запросе, используя: -

String query = "SELECT _id, month, year, month||' - '||year AS date, SUM(valor) AS valor, SUM(total_valor) AS total_valor, SUM(valor)||'('||SUM(total_valor)||')' AS valor_st_final FROM records GROUP BY month";

Или просто: -

String query = "SELECT _id, month||' - '||year AS date, SUM(valor)||'('||SUM(total_valor)||')' AS valor_st_final FROM records GROUP BY month";

Вам не нужно: -

String month_st = cursor.getString(1);
String year_st = cursor.getString(2);
String valor_st= cursor.getString(3);
String total_valor_st = cursor.getString(4);

String date = month_st + " - " +year_st;
String valor_st_final = valor_st+ "(" +total_valor_st +")";

Поскольку вся работа выполняется в SELECT SQL и столбцы имеют соответствующие имена.

0 голосов
/ 23 сентября 2018

Вы можете указать базе данных возвращать значения в нужном формате:

SELECT _id,
       month || ' - ' || year AS date,
       SUM(valor) || ' (' || SUM(total_valor) || ')' AS valor_final
FROM records
GROUP BY month;

Если вы не можете управлять курсором, вместо этого вы можете использовать пользовательский класс ViewBinder дляпереформатировать значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...