【问题标题】:Android Studio ListView from SQLite来自 SQLite 的 Android Studio ListView
【发布时间】:2016-02-08 15:42:34
【问题描述】:

我正在使用 Android Studio。在我的 ListView 上显示 SQLite 数据库中的数据时遇到问题。 这是一种从 SQLite 获取数据的方法(效果很好,已检查)

 public List<Terminy> getAllItems(){
    List<Terminy> itemList = new ArrayList<Terminy>();

    String selectQuery = "SELECT id,data FROM Terminy WHERE Wolny = 1";

    SQLiteDatabase database = this.getWritableDatabase();
    Cursor cursor = database.rawQuery(selectQuery, null);


    if(cursor.moveToFirst()){
        do{
            Terminy termin = new Terminy();
            termin.setId2(Integer.parseInt(cursor.getString(0)));
            termin.setData(cursor.getString(1));
            itemList.add(termin);
        }while(cursor.moveToNext());
    }
    cursor.close();
    return itemList;
}

还有将数据放入ListView的方法

public void ButtonLista(View v)
{
    ArrayAdapter<Terminy> adapter;
    ArrayList<Terminy> lista;
    DatabaseHelper helper = new DatabaseHelper(this);
    ListView listView = (ListView) findViewById(R.id.listView);
    lista = new ArrayList<>(helper.getAllItems());
    adapter = new ArrayAdapter<Terminy>(this,R.layout.activity_panel_uzytkownik, lista);
    listView.setAdapter(adapter);
    adapter.notifyDataSetChanged();

LogCat 错误

com.example.czou.proojekt E/ArrayAdapter: You must supply a resource ID for a TextView com.example.czou.proojekt D/AndroidRuntime: Shutting down VM com.example.czou.proojekt W/art: Suspending all threads took: 02-08 17:47:59.352 1779-1779/com.example.czou.proojekt E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.czou.proojekt, PID: 1779 java.lang.IllegalStateException: ArrayAdapter requires the resource ID to be a TextView 

有人可以帮我吗?到目前为止我已经阅读了很多教程,但仍然不知道如何解决我的问题:(

【问题讨论】:

  • 有什么问题?
  • 我的方法不起作用。当我单击按钮在 ListView 上显示数据时,我的应用程序停止并退出。
  • 你介意分享异常/崩溃的堆栈跟踪(又名logcat
  • 没错。不幸的是,应用程序已停止错误消息
  • @Czunio 请张贴你的 logcat

标签: android database sqlite listview


【解决方案1】:

看看这个Answer

或者尝试使用单独的Adapter (extends ArrayAdapter) 来完全控制您的布局及其每一部分。

这里有一个关于使用ArrayAdapter的教程link

另一个关于如何将 SQLIte 与 ListView 一起使用的教程link

【讨论】:

    【解决方案2】:
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.czou.proojekt.PanelUzytkownik">
    
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="New Button"
        android:id="@+id/button"
        android:layout_alignParentBottom="true"
        android:onClick="ButtonLista" />
    
    <ListView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/listView"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginBottom="80dp" />
    

    【讨论】:

    • 你的textView在哪里?
    • @John Joe 我没有它...以为我只需要 ListView 而不需要其他任何东西
    • 在这种情况下你需要有两个布局。请参阅thisthis
    猜你喜欢
    • 2013-08-18
    • 1970-01-01
    • 2017-09-28
    • 1970-01-01
    • 2016-07-31
    • 1970-01-01
    • 2022-01-17
    • 2015-07-03
    相关资源
    最近更新 更多