Java SQLite数据库适配器
我正在开发新闻android应用程序如果我在线,我会在RSSflux中获得新闻,并且我有一个Java SQLite数据库适配器,java,android,sqlite,android-arrayadapter,Java,Android,Sqlite,Android Arrayadapter,我正在开发新闻android应用程序如果我在线,我会在RSSflux中获得新闻,并且我有一个RSSItemAdapter 使用此代码: import java.io.InputStream; import java.io.IOException; import java.net.URL; class RSSItemAdapter extends ArrayAdapter<RSSItem> { private final Context context; final
RSSItemAdapter
使用此代码:
import java.io.InputStream;
import java.io.IOException;
import java.net.URL;
class RSSItemAdapter extends ArrayAdapter<RSSItem> {
private final Context context;
final Comment comment = null;
private CommentsDataSource datasource;
public RSSItemAdapter(Context context, int textViewResourceId, List<RSSItem> items) {
super(context, textViewResourceId, items);
this.context = context;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.rssitem, null);
}
final RSSItem item = getItem(position);
TextView tv = (TextView) v.findViewById(R.id.title);
// tv.setText("<a href="+'"'+item.getUrl()+'"'+">"+item.getTitle()+"</a>");
// tv.setText(Html.fromHtml("<a href=\"http://www.google.com\">"+item.getTitle()+"</a>"));
tv.setText(item.getTitle());
//tv.setMovementMethod(LinkMovementMethod.getInstance());
TextView tv1 = (TextView) v.findViewById(R.id.description);
tv1.setText(item.getDescription());
TextView tv2 = (TextView) v.findViewById(R.id.pubdate);
Date date = item.getPubDate();
Format formatter = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz");
String s = formatter.format(date);
tv2.setText(s);
TextView tv3 = (TextView) v.findViewById(R.id.lien);
tv3.setText(item.getUrl());
ImageView iv = (ImageView) v.findViewById(R.id.img);
try {
iv.setImageDrawable(drawableFromURL(item.getImageUrl(), item.getImageTitle()));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return v;
}
private Drawable drawableFromURL(String url, String srcName) throws java.net.MalformedURLException, IOException
{
return Drawable.createFromStream(((InputStream) new URL(url).getContent()), srcName);
}
}
那么,如何获取存储在SQLite数据库中的日期,并使用适配器将其打印成这样呢?我找到了解决方案:
package news.mobile;
导入android.content.ContentValues;
导入android.content.Context;
导入android.database.Cursor;
导入android.database.SQLException;
导入android.database.sqlite.SQLiteDatabase;
导入android.database.sqlite.SQLiteOpenHelper;
导入android.database.sqlite.SQLiteDatabase.CursorFactory;
公共类SQLiteAdapter{
公共静态最终字符串MYDATABASE_NAME=“mobilealgerie.db”;
公共静态最终字符串MYDATABASE_TABLE=“mobilealgerie”;
公共静态最终int MYDATABASE_VERSION=1;
公共静态最终字符串键\u ID=“\u ID”;
公共静态最终字符串键\u TITLE=“TITLE”;
公共静态最终字符串键\u DESCRIPTION=“DESCRIPTION”;
公共静态最终字符串键\u PUBDATE=“PUBDATE”;
//创建表MY_数据库(ID整数主键,内容文本不为空);
私有静态最终字符串脚本\u创建\u数据库=
“创建表”+MYDATABASE_表+”(“
+KEY_ID+“整数主键自动递增,”
+关键字标题+“文本不为空,”
+密钥描述+“文本不为空,”
+键_PUBDATE+“文本不为空);”;
私有SQLiteHelper SQLiteHelper;
专用SQLiteDatabase SQLiteDatabase;
私人语境;
公共SQLiteAdapter(上下文c){
上下文=c;
}
公共SQLiteAdapter openToRead()引发SQLException{
sqLiteHelper=newsqlitehelper(上下文,MYDATABASE\u名称,null,MYDATABASE\u版本);
sqLiteDatabase=sqLiteHelper.getReadableDatabase();
归还这个;
}
公共SQLiteAdapter openToWrite()引发SQLException{
sqLiteHelper=newsqlitehelper(上下文,MYDATABASE\u名称,null,MYDATABASE\u版本);
sqLiteDatabase=sqLiteHelper.getWritableDatabase();
归还这个;
}
公众假期结束(){
sqLiteHelper.close();
}
公共长插入(字符串标题、字符串描述、字符串发布日期){
ContentValues ContentValues=新ContentValues();
contentValues.put(KEY_TITLE,TITLE);
contentValues.put(关键字描述,描述);
contentValues.put(KEY_PUBDATE,PUBDATE);
返回sqLiteDatabase.insert(MYDATABASE_TABLE,null,contentValues);
}
公共int deleteAll(){
返回sqLiteDatabase.delete(MYDATABASE_TABLE,null,null);
}
公共游标queueAll(){
String[]columns=新字符串[]{KEY\u ID,KEY\u TITLE,KEY\u DESCRIPTION,KEY\u PUBDATE};
Cursor Cursor=sqLiteDatabase.query(MYDATABASE_表,列,
空,空,空,空,空,空);
返回光标;
}
公共类SQLiteHelper扩展了SQLiteOpenHelper{
@凌驾
public void onCreate(SQLiteDatabase db){
//TODO自动生成的方法存根
execSQL(脚本创建数据库);
}
@凌驾
public void onUpgrade(SQLiteDatabase db,int-oldVersion,int-newVersion){
//TODO自动生成的方法存根
}
}
}
在这里,我看不到sqlite数据库在哪里。
if (isOnline()) {
ListView rssItemList = (ListView) findViewById(R.id.rssListview);
FeedSource feedSource = new HttpFeedSource();
RSSItemAdapter adapter = new RSSItemAdapter(this, R.layout.rssitem, feedSource.getFeed());
rssItemList.setAdapter(adapter);
}