База данных sqlite помещает данные в неправильные столбцы - PullRequest
1 голос
/ 09 мая 2020

У меня проблема с моей базой данных, когда я пытаюсь добавить данные из симулятора, он помещает их в неправильный столбец. Я понимаю, что он начинается с 0, например (1 столбец = 0, 2 столбца = 1 ....)

Думаю, я установил его на 1, чтобы поместить данные в 2 столбца, но вместо этого он помещает их в 3 столбца, но когда он установлен на «0», он добавляет данные в первый столбец, как и предполагалось. У кого-нибудь есть идеи, почему это может происходить?

package com.example.laivumusis;

import android.database.Cursor;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.Toast;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import java.util.ArrayList;

public class ViewListData extends AppCompatActivity {

    KlausimynoDatabaseHelper myDB;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.editlistview_layout);

        ListView listView = (ListView) findViewById(R.id.listView);
         myDB = new KlausimynoDatabaseHelper(this);

        ArrayList<String> theList = new ArrayList<>();
        Cursor data = myDB.getListContents();

        if (data.getCount() == 0) {
            Toast.makeText(ViewListData.this,"Database tuščias!",Toast.LENGTH_LONG).show();
        }else{
            while (data.moveToNext()){
                theList.add(data.getString(1));
                ListAdapter listAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1,theList);
                listView.setAdapter(listAdapter);
            }
        }
    }
}

1 Ответ

0 голосов
/ 09 мая 2020

Не используйте индекс столбца следующим образом:

theList.add(data.getString(1));

Используйте метод getColumnIndex(), передав имя столбца, потому что порядок столбцов может быть не тем, что вы думаете. Так что измените на это:

theList.add(data.getString(data.getColumnIndex("columnName")));

Замените columnName именем нужного столбца.

...