Sqlite数据库把数据放在了错误的列中。

问题描述 投票:1回答:1

我的数据库有一个问题,当我试图从模拟器中添加数据时,它把它放在了错误的列中,我知道它是从0开始的,比如(1列=0,2列=1......)。我知道它是从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);
            }
        }
    }
}
java android sqlite android-sqlite
1个回答
0
投票

不要像这样使用列的索引。

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

用这种方法 getColumnIndex() 通过传递列的名称,因为列的顺序可能不是你所想的那样。所以改成这样。

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

替换 columnName 与你想要的列名。

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