如何在SQLite Android中检索下一个值

宝石乌巴尔多

嗨,我有一个显示学生姓名和性别的应用程序。在我的查询中,我将显示限制为20。如何通过单击下一步按钮应用21-40的显示。如果我单击上一个,它也会返回。

MainActivity类

public class MainActivity extends Activity {

    List<Students> GetAll;
    DatabaseHelper db = new DatabaseHelper(this);
    ListView lv;
    Context context = this;
    DatabaseHelper dbhelper;
    Button btnprevious,btnnext;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        dbhelper = new DatabaseHelper(MainActivity.this);
        //Add below lines to your original code
        try{
            dbhelper.createDataBase();
        }
        catch(IOException e){
            e.printStackTrace();
        }
        try {
            dbhelper.openDataBase();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        //Till here
        GetAll = dbhelper.getAll();
        lv = (ListView) findViewById(R.id.list);
        lv.setAdapter(new ViewAdapter());
    }



    public class ViewAdapter extends BaseAdapter {

        LayoutInflater mInflater;

        public ViewAdapter() {
            mInflater = LayoutInflater.from(context);
        }

        @Override
        public int getCount() {
            return GetAll.size();
        }

        @Override
        public Object getItem(int position) {
            return null;
        }

        @Override
        public long getItemId(int position) {
            return position;
        }

        @Override
        public View getView(final int position, View convertView, ViewGroup parent) {

            if (convertView == null) {
                convertView = mInflater.inflate(R.layout.list_item,null);
            }

            final TextView names = (TextView) convertView.findViewById(R.id.doctorlist_name);
            final TextView gender = (TextView) convertView.findViewById(R.id.doctorlist_gender);

            names.setText(GetAll.get(position).getname());
            gender.setText(GetAll.get(position).getgender());

            return convertView;
        }
    }
}

DatabaseHelper类

public List<Students> getAll() {

        final int maxCount = 20;

        List<Students> sList = new ArrayList<Students>();
        {
            String selectQuery =
                    "SELECT id,full_name,gender FROM students LIMIT " +maxCount+" ";
            Log.e("students query: ", selectQuery);
            SQLiteDatabase db = this.getWritableDatabase();
            Cursor cursor = db.rawQuery(selectQuery, null);

            // looping through all rows and adding to list
            if (cursor.moveToFirst()) {
                do {
                    Students si = new Students();
                    si.setid(Integer.parseInt(cursor.getString(0)));
                    si.setname(cursor.getString(1));
                    si.setgender(cursor.getString(2));

                    sList.add(si);
                } while (cursor.moveToNext());
            }
            db.close();
        }
        return sList;
    }
达瓦尔·帕特尔(Dhaval Patel)

在下一个按钮上单击将索引增加20,在上一个按钮上单击将索引减少到20,您可以使用以下查询来实现。

String selectQuery = "SELECT id,full_name,gender FROM students LIMIT 20, "+index;

编辑:

public List<Students> getStudent(int index) {
        final int maxCount = 20;
        List<Students> sList = new ArrayList<Students>();{
            String selectQuery = "SELECT id,full_name,gender FROM students LIMIT "+maxCount+", "+index;;
            Log.e("students query: ", selectQuery);
            SQLiteDatabase db = this.getWritableDatabase();
            Cursor cursor = db.rawQuery(selectQuery, null);
            // looping through all rows and adding to list
            if (cursor.moveToFirst()) {
                do {
                    Students si = new Students();
                    si.setid(Integer.parseInt(cursor.getString(0)));
                    si.setname(cursor.getString(1));
                    si.setgender(cursor.getString(2));

                    sList.add(si);
                } while (cursor.moveToNext());
            }
            db.close();
        }
        return sList;
}



private int currentPageIndex=0; 
@Override
public void onClick(View view) {
     switch(view.getId()){
          case R.id.prevBtn;
                currentPageIndex -=20;
                GetStudent.clear();
                GetStudent.addAll(dbhelper.getStudent(int index));
                adapter.notifyDataSetChanged();
        break;
          case R.id.nextBtn;
                currentPageIndex +=20;
                GetStudent.clear();
                GetStudent.addAll(dbhelper.getStudent(int index));
                adapter.notifyDataSetChanged();
        break;
     }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从Python中的上一个值中减去下一个值?

如何将地图收集数据发送和检索到Android中的下一个活动

如何在dplyr中调用第n个下一个值?

如何从android中的sqlite获取下一个数据

如何使用r中“下一个”组的第一个值?

如何检索列表中的下一个较高的数字?

如何在python中存储下一个循环的迭代值

如何在SPSS Modeler中获取下一个非null值

如何在实体框架中获取SQL Server序列的下一个值?

如何在数组中查找下一个最大值

如何在JavaScript迭代器中窥视下一个值

如何在Java的循环链接列表中设置下一个值?

如何在 BeautifulSoup 中获取下一个 td 值

如何在Android中的ViewPager之后转到下一个活动?

如何在MSSQL中查找天的上一个和下一个值?

如何在Python枚举中优雅地找到下一个和上一个值?

如何在php中获取上一个和下一个数组值?

如何使用Android Studio中的PostResponseAsyncTask将SharedPreferences设置为下一个活动值?

如何在Android中制作下一页按钮(单击以转到下一个片段)

如何检查数组中是否存在某个值并获取下一个值?

如何读取同一行中的下一个值?

如何从protobuf中的枚举中获取下一个枚举值?

如何获得行数直到下一个值

如何只选择下一个较小的值

如何达到链表的下一个值?

如何获得$(this)的下一个值

如果PostgreSQL中存在,如何获取下一个值

如何获得influx数据库中的下一个值

Python:如何通过下一个项目值将列表中的元组链接