我正在处理新闻Android应用程序如果我在线我在 rss 流量中得到消息我有一个RSSItemAdapter
使用此代码:
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(drawable_from_url(item.getImageUrl(), item.getImageTitle()));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return v;
}
Drawable drawable_from_url(String url, String src_name) throws java.net.MalformedURLException, java.io.IOException
{
return Drawable.createFromStream(((java.io.InputStream)
new java.net.URL(url).getContent()), src_name);
}
}
在主课程之后我称之为:
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);
}
那么如何才能将日期存储在我的sqlite上并使用适配器打印出来?
答案 0 :(得分:0)
我找到了解决方案:
package news.mobile;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
public class SQLiteAdapter {
public static final String MYDATABASE_NAME = "mobilealgerie.db";
public static final String MYDATABASE_TABLE = "mobilealgerie";
public static final int MYDATABASE_VERSION = 1;
public static final String KEY_ID = "_id";
public static final String KEY_TITLE = "title";
public static final String KEY_DESCRIPTION = "description";
public static final String KEY_PUBDATE = "pubdate";
//create table MY_DATABASE (ID integer primary key, Content text not null);
private static final String SCRIPT_CREATE_DATABASE =
"create table " + MYDATABASE_TABLE + " ("
+ KEY_ID + " integer primary key autoincrement, "
+ KEY_TITLE + " text not null ,"
+ KEY_DESCRIPTION + " text not null,"
+ KEY_PUBDATE + " text not null);";
private SQLiteHelper sqLiteHelper;
private SQLiteDatabase sqLiteDatabase;
private Context context;
public SQLiteAdapter(Context c){
context = c;
}
public SQLiteAdapter openToRead() throws android.database.SQLException {
sqLiteHelper = new SQLiteHelper(context, MYDATABASE_NAME, null, MYDATABASE_VERSION);
sqLiteDatabase = sqLiteHelper.getReadableDatabase();
return this;
}
public SQLiteAdapter openToWrite() throws android.database.SQLException {
sqLiteHelper = new SQLiteHelper(context, MYDATABASE_NAME, null, MYDATABASE_VERSION);
sqLiteDatabase = sqLiteHelper.getWritableDatabase();
return this;
}
public void close(){
sqLiteHelper.close();
}
public long insert(String TITLE,String DESCRIPTION ,String PUBDATE){
ContentValues contentValues = new ContentValues();
contentValues.put(KEY_TITLE, TITLE);
contentValues.put(KEY_DESCRIPTION, DESCRIPTION);
contentValues.put(KEY_PUBDATE, PUBDATE);
return sqLiteDatabase.insert(MYDATABASE_TABLE, null, contentValues);
}
public int deleteAll(){
return sqLiteDatabase.delete(MYDATABASE_TABLE, null, null);
}
public Cursor queueAll(){
String[] columns = new String[]{KEY_ID, KEY_TITLE, KEY_DESCRIPTION,KEY_PUBDATE };
Cursor cursor = sqLiteDatabase.query(MYDATABASE_TABLE, columns,
null, null, null, null, null);
return cursor;
}
public class SQLiteHelper extends SQLiteOpenHelper {
public SQLiteHelper(Context context, String name,
CursorFactory factory, int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL(SCRIPT_CREATE_DATABASE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
}
}