我正在尝试为我正在写的东西制作一个自定义的 CursorAdapter。我正在做的计划涉及一个 SQLite 数据库,其中包含警报响起的日期和时间。(因为 SQLite 实际上没有 DATETIME 数据类型,所以它们都只是在存储为 INT 之前转换为 Unix 时间。)我找到了这个制作自定义游标适配器的示例,并尝试对其进行调整,以便它可以接受Unix 时间条目并将它们转换为人类可读的内容。不过,我遇到了一些障碍。我不确定我所拥有的是否就是我需要的。这是我到目前为止所得到的:
import java.util.GregorianCalendar;
import android.content.Context;
import android.database.Cursor;
import android.support.v4.widget.SimpleCursorAdapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Filterable;
import android.widget.TextView;
/**
* @author Dave Smith
*
*/
public class DateTimeCursorAdapter extends SimpleCursorAdapter implements Filterable {
private Context context;
private int layout;
/**
* @param context
* @param layout
* @param c
* @param from
* @param to
* @param flags
*/
public DateTimeCursorAdapter(Context context, int layout, Cursor c,
String[] from, int[] to, int flags) {
super(context, layout, c, from, to, flags);
this.context = context;
this.layout = layout;
}
public View newView(Context context, Cursor cursor, ViewGroup parent){
Cursor c = getCursor();
final LayoutInflater inflater = LayoutInflater.from(context);
View v = inflater.inflate(layout, parent, false);
/*int nameCol = c.getColumnIndexOrThrow("ALARMS.DATETIME");
String dateTime = c.getString(nameCol);
dateTime = convertFromUnixTime(Long.parseLong(dateTime)).toString();
TextView dateTimeText = (TextView) v.findViewById(R.id.dateandtime);
if (dateTimeText != null){
dateTimeText.setText(dateTime);
}*/
return v;
}
public void bindView(Context context, Cursor c, View v){
int nameCol = c.getColumnIndexOrThrow("ALARMS.DATETIME");
String dateTime = c.getString(nameCol);
dateTime = convertFromUnixTime(Long.parseLong(dateTime)).toString();
TextView dateTimeText = (TextView) v.findViewById(R.id.dateandtime);
if (dateTimeText != null){
dateTimeText.setText(dateTime);
}
}
private GregorianCalendar convertFromUnixTime(long unixTime)
{
GregorianCalendar cal = new GregorianCalendar();
cal.setTimeInMillis(unixTime);
return cal;
}
}
这是否允许我从我的数据库中读取所有各种 UnixTime 条目并将它们以 MM/DD/YYYY HH:MM 格式(或当前语言环境接受的任何格式)输出?