0

我正在为我的最后一年项目开发一个 android 应用程序。我的应用程序是关于存储信息,然后将其显示在手机上。

我通过使用 sqlite 解决了这个问题,我可以在其中存储数据,也可以使用 cursor 检索它c。但是我怎样才能使检索数据对用户可见?

  • 示例:我正在创建一个有关汉堡王的应用程序,然后单击有关汉堡王的信息,它会向用户显示信息(创建时间等)。
4

2 回答 2

0

这是一个开放式的问题。如果您想将搜索结果作为列表或网格呈现给用户,请使用 ListView 或 Gridview,并将 CursorAdapter 附加到您的视图。CursorAdapter 将从数据库中读取结果并将它们提供给视图。您可能希望将您的 CursorAdapter 子类化,以便它为您的 ListView/GridView 生成适当的视图以显示。

这是一个高级主题,但我相信您可以找到教程和代码示例。

如果您只想在屏幕上显示单个数据项(可能是具有很多细节的数据项),那么您可能需要定义一个 Dialog 或 Activity 将其呈现给用户,然后从光标并将其加载到对话框/活动中的各种视图对象中。

我希望这有帮助。如果我们能更详细地了解您正在尝试做的事情,那将会很有用。

于 2012-07-18T03:54:25.730 回答
0

我同意 Edward Falk 关于需要更明确定义的细节的观点。在回答您的问题时,我建议在您的 xml 文件中创建一些 TextViews 或 ListView,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="match_parent">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/fragmentLayout"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:paddingLeft="8dp"
    android:paddingRight="8dp" >

    <TextView
        android:id="@+id/viewl"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/viewvaluesLabel"
        android:textAppearance="?android:attr/textAppearanceLarge" />


    <TextView
        android:id="@+id/view2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/viewvaluesLabel"
        android:textAppearance="?android:attr/textAppearanceLarge" />


            .
            .
            .

</LinearLayout>
</ScrollView>

然后,您可以使用“R.find”语句通过它们各自的 ID 获取这些 TextView,例如:

TextView view1 = (TextView)findViewById(R.id.view1);
TextView view2 = (TextView)findViewById(R.id.view2);
TextView view3 = (TextView)findViewById(R.id.view3);

然后使用如下代码设置您从数据库表中检索到的数据以显示在这些视图中:

Cursor c = db.getDetails(id);
if (c.moveToFirst()) {
view1.setText(c.getString(1));
view2.setText(c.getString(2));
view3.setText(c.getString(3));
} else {
    db.close();
}

希望有帮助。

于 2012-07-18T05:56:01.937 回答