Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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
Android 如何使ListView仅显示最后6项?_Android_Sqlite_Listview - Fatal编程技术网

Android 如何使ListView仅显示最后6项?

Android 如何使ListView仅显示最后6项?,android,sqlite,listview,Android,Sqlite,Listview,我的活动只显示listview(他从SQLite数据库中提取数据),他可以显示的数据没有限制,而且效果很好 现在,我想向MainActivity添加一个新的小listview,它将只显示最后五个数据 我在网络上找不到该怎么做 DataListActivity.java ListDataAdapter.java 忽略代码,显然有一个对象数组要传递给数组适配器的构造函数 Object[] data = new Object[]{...} MyArrayAdapter myAdapter = new

我的活动只显示listview(他从SQLite数据库中提取数据),他可以显示的数据没有限制,而且效果很好

现在,我想向MainActivity添加一个新的小listview,它将只显示最后五个数据

我在网络上找不到该怎么做

DataListActivity.java

ListDataAdapter.java


忽略代码,显然有一个对象数组要传递给数组适配器的构造函数

Object[] data = new Object[]{...}
MyArrayAdapter myAdapter = new MyArrayAdapter(data ,... else)
您只需获取这个
数据
数组,并将最后6个元素附加到一个新数组中

Object[] data2 = new Object[6]
for(int i = data.length()-7; i<data.length(); i++){
    data2[data.length()-i] = data[i]

创建将返回游标[SQL query]上最后6行的方法

cursor = courseDbHelper.getInformationLast_6(sqLiteDatabase);
SQL:


这样你可以在你的列表中得到6项。在适配器类中尝试以下代码

public int getCount() {
        return 6;
    }

然后按升序或降序将查询更改为限制6。

您可以移动到当前光标的最后一个位置,并移动到前几行以获取所需数据。有点:

ArrayList string;
if (cursor.moveToLast()){
   for (int i = 1; i<=6; i++) {
   string.add(cursor.getString(cursor.getColumnIndex("your_data")));
   cursor.moveToPrevious();
   } 
}
cursor.close();
ArrayList字符串;
if(cursor.moveToLast()){

对于(inti=1;iTry this:如果你想要这个“小”使用现有的listview,然后在新的
ListDataAdapter
中复制原始数据并加载新的listview。如果不需要原始listview,则可以修改现有数据并重新加载listview。显示ListDataAdapter类code@RahulSharma我想他使用的是默认的ArrayListAdapter活力。
cursor = courseDbHelper.getInformationLast_6(sqLiteDatabase);
 SELECT * FROM table ORDER BY column DESC [ASC] LIMIT 6;
public int getCount() {
        return 6;
    }
ArrayList string;
if (cursor.moveToLast()){
   for (int i = 1; i<=6; i++) {
   string.add(cursor.getString(cursor.getColumnIndex("your_data")));
   cursor.moveToPrevious();
   } 
}
cursor.close();