gpt4 book ai didi

android - 调试 SimpleCursorAdapter

转载 作者:太空宇宙 更新时间:2023-11-03 12:43:03 26 4
gpt4 key购买 nike

我正在开发我的第一个 Android 应用程序,但不知道如何让我的 SimpleCursorAdpater 填充 View 。我传入的游标在其中产生了结果,因此问题一定出在实例化适配器或将其绑定(bind)到 View 的某个地方。我有点不知所措,因为没有抛出异常,我不能真正采取行动进入 setListAdapter。

这是我首先获得光标的方式:

    Searches searches = new Searches(this);

SQLiteDatabase db = searches.getReadableDatabase();
//select _id, Name, Search FROM Searches;
Cursor c = db.query(
SearchConstants.TABLE_NAME,
FROM, null, null, null,
null, null);
startManagingCursor(c);

这是我的数据库的架构:

CREATE TABLE Searches (_id INTEGER PRIMARY KEY, Name Text, Search TEXT)

这是事情开始分崩离析的两条线:

SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.search, cursor, FROM, TO);
setListAdapter(adapter);

我的主要布局是这样的:

<ListView
android:id="@android:id/android:list"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@android:id/android:empty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/empty" />

这是要填充每个结果的 View :

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="10sp">
<TextView
android:id="@+id/_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/colon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=": "
android:layout_toRightOf="@id/name" />
<TextView
android:id="@+id/search"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
android:singleLine="true"
android:textStyle="italic"
android:layout_toRightOf="@id/colon" />
</RelativeLayout>

最后是我使用的静态变量:

//search query stuff
private static String[] FROM = {SearchConstants._ID, SearchConstants.NAME_COLUMN, SearchConstants.SEARCH_COLUMN};

//where to paste search results
private static int[] TO = {R.id._id, R.id.name, R.id.search};

/**
* Table name
*/
public static final String TABLE_NAME = "Searches";

/**
* Name Column
*/
public static final String NAME_COLUMN = "Name";

/**
* Search Column
*/
public static final String SEARCH_COLUMN = "Search";

我认为这是所有相关代码。我现在不知道如何进行,所以任何建议都会有所帮助。

谢谢,布赖恩

PS:看起来这里有很多很棒的建议 - 我没有忽略它们,我只是还没有机会。谢谢你的建议!在某些时候,我会仔细检查所有这些,并尝试就哪些事情对我来说效果很好提供一些反馈。

最佳答案

如果你有源代码,你可以单步执行代码。幸运的是,Android 是开源的。要在 Eclipse 中轻松附加源代码,请参阅:

http://android.opensourceror.org/2010/01/18/android-source/

至于问题本身,您在上面的评论中说您在创建适配器之前迭代了所有项目。如果您没有在迭代后创建新的游标,您可能需要倒带它,否则适配器可能认为它是空的。

cursor.moveToFirst()

关于android - 调试 SimpleCursorAdapter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4039086/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com