從 SQLite 讀取和顯示值並將它們存儲在列表中

菜鳥編碼器

我正在嘗試從我的數據庫讀取和顯示所有數據,但出現以下錯誤。此外,recyclerview 不顯示任何數據。

我如何從數據庫讀取。

 public ArrayList<SatelliteForm> getAllData(SQLiteDatabase sqLiteDatabase){
        ArrayList<SatelliteForm> arraySatelite = new ArrayList<>();
        sqLiteDatabase = this.getWritableDatabase();
        String SELECT_QUERY = "select name, country, category from " + SatFormContracts.ContactsEntry.TABLE_NAME + ";";
        Cursor c = sqLiteDatabase.rawQuery(SELECT_QUERY, null);
        if(c.moveToFirst()){
            while(c.moveToNext()){
                SatelliteForm form = new SatelliteForm();
                form.setName(c.getString(1));
                form.setCountry(c.getString(2));
                form.setCategory(c.getString(3));
                arraySatelite.add(form);
                Log.i("nameSQL", c.getString(1) + "" + c.getString(2) + "" + c.getString(3));
            }
        }
        c.close();
        return arraySatelite;
    }

我如何將元素添加到數據庫中。

 public void onClick(View view) {
                if(!(satName.getText().toString().isEmpty() || countryName.getText().toString().isEmpty() || categoryName.getText().toString().isEmpty())){
                    //adds the current names into the constructor
                    SatelliteForm addForm = new SatelliteForm(satName.getText().toString(),
                                                              categoryName.getText().toString(),
                                                              countryName.getText().toString());
                    //inserts the values
                    dbHelper.insertContact(db, addForm);
                    saveState.setText("Saved!");
                }else{
                    saveState.setText("One or all the fields are empty");
                    Log.i("Campos", "Unos de los campos esta vacio");
                }
            }
        });

我如何嘗試顯示保存在列表中的數據。

public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
    View listView = inflater.inflate(R.layout.fragment_list, container, false);

    ArrayList<SatelliteForm> arraySatelite = dbHelper.getAllData(db);

    RecyclerView recyclerView = listView.findViewById(R.id.recyclerView);
    RecyclerViewAdapter adapter = new RecyclerViewAdapter(arraySatelite);
    recyclerView.setAdapter(adapter);
    recyclerView.setLayoutManager(new LinearLayoutManager((getContext())));
    recyclerView.addItemDecoration(new DividerItemDecoration(getContext(), DividerItemDecoration.VERTICAL));

    return listView;
}

我保存所有數據的類。

public class SatelliteForm {
    private String name;
    private String country;
    private String category;
    private ArrayList<String> names;
    private List<String> list;

    //Empty constructor
    public SatelliteForm(){}
    //Construtcor
    public SatelliteForm(String name, String country, String category){
        this.name = name;
        this.country = country;
        this.category = category;
        this.names = names;
        addNames(name, country, category);
    }
    //Method which adds the variables to an array
    public void addNames(String name, String country, String category) {
        list = Arrays.asList(name, country, category);
        names = new ArrayList<>(list);
    }
    //Getters & Setters
    public ArrayList<String> getArray(){
        return names;
    }
    public String getName() { return name; }
    public String getCountry() { return country; }
    public String getCategory() { return category; }
    public void setName(String name) { this.name = name; }
    public void setCountry(String country) { this.country = country; }
    public void setCategory(String category) { this.category = category; }
}

錯誤:[![錯誤] [1]] [1] [1]:https://i.stack.imgur.com/eyHoY.png

E/CursorWindow: Failed to read row 0, column 3 from a CursorWindow which has 4 rows, 3 columns.
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.uspherejda, PID: 7434
    java.lang.IllegalStateException: Couldn't read row 0, col 3 from CursorWindow.  Make sure the Cursor is initialized correctly before accessing data from it.
拉法爾A

您應該從 0 開始並向上計數。我可以看到您從 1 開始,這就是錯誤的地方。

嘗試替換getString(1) getString(0).

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

邏輯應用程序 - 從 Web 服務讀取 XML 響應並將解析的數據存儲在數據庫中

如何使用 onClick 從自定義 React 鉤子 (API) 獲取數據並使用 TypeScript 將其顯示在 Div 中?

如何正確檢索和更改從 jQuery 數組中存儲的文本值?

Python將項目從數據庫表(sqlite3)添加到字典中

從列表中檢索對象並將它們傳送到 Unity 中的特定位置

如何從表列中的輸入中獲取值並將它們相加?

從兩個列表中刪除 'a' 和 'A' 字符並將它們作為對返回

冒泡排序使用從 C 中的文件讀取的值

使用 AmazonSimpleSystemsManagementClient 從參數存儲中讀取值

從文件中讀取元組列表/將數據保存到文件

如何從字符串中提取所有整數並將它們存儲在java中的int數組中

SQLAlchemy 給出 TypeError 從 SQLite 數據庫讀取字符串

如何從用戶那裡獲取數字存儲它們直到他們輸入 -1 然後將所有數字加起來

如何從 Cursor 獲取 Bool (Java SQLite)

從一個文件夾中的多個文件加載 json 並將它們放入一個字典(或列表)中

有沒有辦法將從 APISAUCE API 收到的響應存儲到異步存儲中作為緩存,並在 React Native 的平面列表中顯示它

從提交表單中獲取輸入值並存儲在 redux 存儲中以供以後使用

從名稱數組製作 HTML 按鈕,並將它們插入到 DOM 中

需要從列中獲取特定數據並使用 Python 和 Pandas 將它們轉置為行

如何從存儲中讀取配置以在 react-admin 中為 DataProvider 提供 url

如何從 SQL Server 存儲過程的 3 列中獲取 MAX 值?

如何從 Aws s3 獲取圖像 url 位置並將其存儲在 mongodb 中

從 SQLite 上的 WITH 子句更新數據

如何在 React Native 中顯示從異步存儲接收的數據?

從下拉列表中選擇選項並顯示在框中

如何從 JSON 數據中獲取列表以顯示在小部件中?

SQL Server:從表中讀取嵌套的 JSON 並找到 MAX 值

如何從實時 Firebase 中檢索使用 Geofire 設置的多個位置並在 Android Studio 的地圖上顯示它們?

從列表中顯示用戶選擇