gpt4 book ai didi

java - Android 中 ListView 的自定义光标适配器的问题

转载 作者:行者123 更新时间:2023-12-01 05:54:38 25 4
gpt4 key购买 nike

我有一个应用程序将查询数据库并尝试以列表格式输出结果。

我的第一次尝试是使用 simpleCursorAdapter,它对于名称和状态等字符串输出效果很好,但不会显示光标处的时间字段。我的数据库中的时间字段是时间戳类型。时间字段的查询是

"strftime('%H:%M',time(sql_start_date,'unixepoch')) as start_time, " +

经过一点研究,结果发现 SimpleCursorAdapters 仅适用于字符串。我发现这有点令人困惑,因为我认为字段 start_time 是字符串的格式(毕竟我可以通过说以下内容在日志窗口中查看结果:

Log.i(TAG,start_time);

所以我的下一个尝试是使用我自己的自定义 CursorAdapter:

private class MyVisitsAdapter extends CursorAdapter{
private Cursor mCursor;
private Context mContext;
private final LayoutInflater mInflater;

public MyVisitsAdapter(Context context, Cursor cursor) {
super(context, cursor, true);
mInflater = LayoutInflater.from(context);
mContext = context;
}

@Override
public void bindView(View view, Context context, Cursor cursor) {
String st = cursor.getString(cursor.getColumnIndex(VisitsAdapter.KEY_CLIENT_START_TIME));
Log.i("Check Cursor result",st);
TextView t = (TextView) view.findViewById(R.id.start_time_display);

t.setText(st);


TextView t1 = (TextView) view.findViewById(R.id.end_time_display);
t.setText(cursor.getString(cursor.getColumnIndex(VisitsAdapter.KEY_CLIENT_END_TIME)));

t = (TextView) view.findViewById(R.id.name_entry);
t.setText(cursor.getString(cursor.getColumnIndex(VisitsAdapter.KEY_CLIENT_FULL_NAME)));
}

@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
final View view = mInflater.inflate(R.layout.list_element, parent, false);
return view;
}

}

代码失败:

t.setText(st);

有空指针异常。适配器未找到“start_time_display” TextView 。

包含字段(list_element.xml)的xml文件如下:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView
android_id="@+id/start_time_display"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="16dip"
android:textColor="#333333"
android:layout_marginLeft="14px"
></TextView>
<TextView
android_id="@+id/end_time_display"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="16dip"
android:textColor="#333333"
android:layout_toRightOf="@+id/start_time_display"
android:layout_marginLeft="64px"></TextView>
<TextView
android:id="@+id/name_entry"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="16dip"
android:textColor="#333333"
android:layout_marginLeft="94px"
android:layout_toRightOf="@+id/end_time_display"/>
<TextView
android:id="@+id/number_entry"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="14dip"
android:textColor="#666666"
android:layout_marginLeft="14px"
android:layout_below="@+id/name_entry"
/>
</RelativeLayout>

正如您所看到的,其中显然包含“start_time_display” TextView 。

希望我错过了一些简单的东西,有更多经验的人(我对 Android 很陌生,我的 Java 很生锈)

先谢谢了

凯文

最佳答案

对不起,伙计们,不要在这上面浪费时间。

问题是一个拼写错误..我在 xml 文件中引用了 android_id,而它本应是 android:id

还是谢谢

凯文

关于java - Android 中 ListView 的自定义光标适配器的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3448533/

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