首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据库中的getter和setter

数据库中的getter和setter
EN

Stack Overflow用户
提问于 2019-03-14 13:18:46
回答 3查看 63关注 0票数 0

我试图从一个数据库表中获取一个完整的行,在那里我发送ID并接收完整的详细信息,这里是我的数据库:

代码语言:javascript
复制
  public ArrayList<Item> GetProjectToMoreDetails(String id) {
    SQLiteDatabase sqLiteDatabase = this.getWritableDatabase ();
    int ID = Integer.parseInt (id);
    Cursor cursor =  sqLiteDatabase.rawQuery ("select * from " + Projects_TABLE + " where " + PRO_ID + " = " + ID , null);

    ArrayList<Item> ProjectsArchive = new ArrayList<>();

    if (cursor != null) {
        cursor.moveToFirst ();
        for (int i = 0 ; i < cursor.getCount(); i++) {
            cursor.moveToPosition(i);
            Item data = new Item();
            data.setProjectName( cursor.getString( cursor.getColumnIndex( PRO_NAME )) );
            data.setPrice("$" + String.valueOf( cursor.getInt( cursor.getColumnIndex( PRO_GOAL )) ) );

            ProjectsArchive.add(data);
            cursor.moveToNext ();
        }
        cursor.close ();
    }else if (cursor == null){
        return null;
    }
    return ProjectsArchive;
}

下面是Item类中的Getter和setter:

代码语言:javascript
复制
public String getProjectName() {
    return ProjectName;}
public void setProjectName(String projectName) {
    this.ProjectName = projectName;}

public String getPrice() {
    return price;}

public void setPrice(String price) {
    this.price = price;}

我试着这样称呼它,但它一直在这里返回null

代码语言:javascript
复制
Item item = new Item();
    DataBaseHelper dataBaseHelper = new DataBaseHelper( getActivity() );
    dataBaseHelper.GetProjectToMoreDetails( ProjectId );
    ProjectName.setText( item.getPrice() );
    ProjectPrice.setText( item.getPrice() );
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-03-14 13:23:56

代码语言:javascript
复制
 ArrayList<Item> itemList = dataBaseHelper.GetProjectToMoreDetails( ProjectId );
for(int i=0;i<itemList.size();i++){
    ProjectName.setText( itemList.get(i).getPrice() );
    ProjectPrice.setText( itemList.get(i).getPrice() );
}    

检查代码片段。你需要这样做。

票数 1
EN

Stack Overflow用户

发布于 2019-03-14 13:25:50

用下面的代码替换GetProjectToMoreDetails方法。

代码语言:javascript
复制
 public ArrayList<Item> GetProjectToMoreDetails(String id) {
        SQLiteDatabase sqLiteDatabase = this.getWritableDatabase ();
        int ID = Integer.parseInt (id);
        Cursor cursor =  sqLiteDatabase.rawQuery ("select * from " + Projects_TABLE + " where " + PRO_ID + " = " + ID , null);

        ArrayList<Item> ProjectsArchive = new ArrayList<>();      
        if (m_cursor != null) {
          if (m_cursor.getCount() > 0 && m_cursor.moveToFirst()) {
            do {
                Item data = new Item();
                data.setProjectName( cursor.getString( cursor.getColumnIndex( PRO_NAME )) );
                data.setPrice("$" + String.valueOf( cursor.getInt( cursor.getColumnIndex( PRO_GOAL )) ) );        
                ProjectsArchive.add(data);
             }while (m_cursor.moveToNext());
          }              
          cursor.close ();            
        }else if (cursor == null){
            return null;
        }
        return ProjectsArchive;
    }

并以下列方式获取数据

代码语言:javascript
复制
ArrayList<Item> itemList = dataBaseHelper.GetProjectToMoreDetails( ProjectId );
for(int i=0;i<itemList.size();i++){
    ProjectName.setText( itemList.get(i).getPrice() );
    ProjectPrice.setText( itemList.get(i).getPrice() );
} 
票数 0
EN

Stack Overflow用户

发布于 2019-03-14 13:28:17

替换

代码语言:javascript
复制
Item item = new Item();
    DataBaseHelper dataBaseHelper = new DataBaseHelper( getActivity() );
    dataBaseHelper.GetProjectToMoreDetails( ProjectId );
    ProjectName.setText( item.getPrice() );
    ProjectPrice.setText( item.getPrice() );

使用

代码语言:javascript
复制
    DataBaseHelper dataBaseHelper = new DataBaseHelper( getActivity() );
    ArrayList<Item> ProjectsArchive=dataBaseHelper.GetProjectToMoreDetails( ProjectId );
    ProjectName.setText( ProjectsArchive.get(0).getProjectName() );
    ProjectPrice.setText( ProjectsArchive.get(0).getPrice() );

注意事项:-这将只打印唯一第一项的值,要获取列表中的所有值,您应该使用回收视图并在回收器适配器中迭代ProjectsArchive。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55163607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档