我编写了一个代码,它有一个下一个按钮,在自定义列表视图中显示存储在我数据库中的下三个项目。 我创建了一个名为id的列,它是一个自动增量列。 但是当我尝试在我的日志cat中打印出id列的值时,它只显示一个零。 这有什么问题?
这是我的数据库:
public class youtube_db extends SQLiteOpenHelper {
public static final String dataBase_NAME="YOUTUBE_database";
private static final int dataBase_VERSION=1;
public static final String dataBase_TABLE="youtube_VIDEOS";
public static final String[] COLS_List={"video_Name","video_Descrption","video_Img","video_Url","video_CountView","video_LIKES","video_CommentCount","id" };
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//end of declaring attributes and tables conents
public youtube_db(Context context) {
super(context,dataBase_NAME, null, dataBase_VERSION);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL(
" create table " + dataBase_TABLE + "(" + COLS_List[0] +" text not null , "+ COLS_List[1]
+" text not null , "+ COLS_List[2]+" text not null , "+COLS_List[3]+" text not null , "+COLS_List[4]+" integer , "+COLS_List[5]
+" integer , "+COLS_List[6]+" integer ,"+COLS_List[7]+" integer primary key autoincrement ) ");
}
这里我试图打印id值:
ArrayList<videos> getAllvideosList=new ArrayList<videos>();
getAllvideosList=connection.getAllData();
connection.close();
for(int i=0;i<getAllvideosList.size();i++){
videos videoObject=new videos();
videoObject.setVideoname(getAllvideosList.get(i).getVideoname());
videoObject.setDecscrption(getAllvideosList.get(i).getDecscrption());
videoObject.setImageurl(getAllvideosList.get(i).getImageurl());
videoObject.setVediourl(getAllvideosList.get(i).getVediourl());
Log.d("try to print id ", String.valueOf(getAllvideosList.get(i).getId()));
vlist.add(videoObject);
lview.setAdapter(new custome(MainActivity.this,vlist));
ad.notifyDataSetChanged();
这是获取所有数据的函数:
public ArrayList<videos> getAllData(){
ArrayList<videos> videoArray=new ArrayList<videos>();
Cursor cursor= SQL_db.query(my_Database.dataBase_TABLE, my_Database.COLS_List, null, null, null, null, null);
for(cursor.moveToFirst();!cursor.isAfterLast();cursor.moveToNext()){
videos videoObject=new videos();
videoObject.setVideoname(cursor.getString(0));
videoObject.setDecscrption(cursor.getString(1));
videoObject.setImageurl(cursor.getString(2));
videoObject.setVediourl(cursor.getString(3));
videoArray.add(videoObject);
Log.d("getAlLvideos", "ok.... ");
}
cursor.close();
Log.d("after close cursor", "ok.... ");
return videoArray;
}//end of function get all data
答案 0 :(得分:2)
问题是您不能为您的业务对象致电setId
:videoObject
。
在你的for循环中添加这一行:
videoObject.setId(cursor.getInteger(7));