gpt4 book ai didi

android - Sqlite自增列问题

转载 作者:行者123 更新时间:2023-11-29 21:37:05 24 4
gpt4 key购买 nike

我编写了一个代码,其中有一个下一个按钮,该按钮以自定义 ListView 的形式显示存储在我的数据库中的接下来的 3 个项目。我创建了一个名为 id 的列,它是一个自动递增列。但是当我试图在我的日志猫中打印出 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

最佳答案

问题是您没有为业务对象调用 setId:videoObject

在你的 for 循环中添加这一行:

        videoObject.setId(cursor.getInteger(7));

关于android - Sqlite自增列问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18188326/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com