android - 获取数据库行中的所有数据以显示 Android SQLite

标签 android database android-listview listactivity

我正在尝试让我的类(class)显示数据库中的所有数据。目前我只显示一组数据,这将是标题,我试图将他的代码更改为我认为会显示所有数据的代码

public class WorkoutProgress extends ListActivity {
private DataBaseHelper datasource;
@Override
public void onCreate(Bundle savedInstanceState) {
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
    super.onCreate(savedInstanceState);
    setContentView(R.layout.progress);

    datasource = new DataBaseHelper(this);
    datasource.open();
    fillData();
    datasource.close();
}
 private void fillData() {
        // Get all of the notes from the database and create the item list
        Cursor c = datasource.getAllTitles();
        startManagingCursor(c);

        String[] from = new String[] { DataBaseHelper.KEY_TITLE,DataBaseHelper.KEY_ISBN, DataBaseHelper.KEY_PUBLISHER };
        int[] to = new int[] { R.id.text1 };

        // Now create an array adapter and set it to display using our row
        SimpleCursorAdapter notes =
            new SimpleCursorAdapter(this, R.layout.notes_row, c, from, to);
        setListAdapter(notes);
    }

    }

我认为我需要更改的代码是这一行

     String[] from = new String[] { DataBaseHelper.KEY_TITLE};

到这一行

        String[] from = new String[] { DataBaseHelper.KEY_TITLE,DataBaseHelper.KEY_ISBN, DataBaseHelper.KEY_PUBLISHER };

这是 notes_row.xml

<?xml version="1.0" encoding="utf-8"?>
 <TextView android:id="@+id/text1"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView android:id="@+id/text2"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView android:id="@+id/text3"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>

最佳答案

你改变了from数组,但您还必须在 to 中添加一些 ID数组(列表行布局中的其他 idsTextView s(R.layout.notes_row),您将在其中显示其他列。)

String[] from = new String[] { DataBaseHelper.KEY_TITLE,DataBaseHelper.KEY_ISBN, DataBaseHelper.KEY_PUBLISHER };
int[] to = { R.id.text1, R.id.text2, R.id.text3 };

哪里R.id.text1 , R.id.text2R.id.text3TextView 的 ID来自 R.layout.notes_row :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/text1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <TextView
        android:id="@+id/text2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <TextView
        android:id="@+id/text3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>

关于android - 获取数据库行中的所有数据以显示 Android SQLite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9995027/

相关文章:

java - notifyDataSetChanged() 使列表刷新并滚动跳回顶部

java - ListView 适配器从 LinkedHashSet<UserItem> 获取信息。如何将其中一个 UserItems 传递到下一个 Activity

java - Android,覆盖ListView中的项目 View 以显示与实际值略有不同

android - 如何找到范围内可用的蓝牙设备?

java - 按下按钮后 Android 模拟器屏幕变为空白

Javascript - 返回前重置值

mysql - 如何以自然的方式将频繁修改的列表存储在数据库中,以便它们可以随时读取?

java - 如何使用sqlite制作可执行的java应用程序

android - 我完美的 Retina 图像代码无法正常工作。 Hi rez 图片以全尺寸加载

java - 如何在 Rooted android 设备中使用 shell 命令读取短信?