Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SQLite数据库适配器_Java_Android_Sqlite_Android Arrayadapter - Fatal编程技术网

Java SQLite数据库适配器

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

我正在开发新闻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 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);
}