Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.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
Java 按相反顺序自定义listview_Java_Android_Listview - Fatal编程技术网

Java 按相反顺序自定义listview

Java 按相反顺序自定义listview,java,android,listview,Java,Android,Listview,我从活动中获取数据,将其保存到sqlite db并在listview中显示。但我希望它以相反的顺序显示列表。这是我的列表视图查看活动。 我无法理解应该为反向顺序列表视图添加什么 编辑:我应该在哪里添加Collection.reverse(arraylist) @覆盖 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity\u displ

我从活动中获取数据,将其保存到sqlite db并在listview中显示。但我希望它以相反的顺序显示列表。这是我的列表视图查看活动。 我无法理解应该为反向顺序列表视图添加什么

编辑:我应该在哪里添加Collection.reverse(arraylist)

@覆盖
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u display\u sqlite\u data);
LISTVIEW=(LISTVIEW)findViewById(R.id.listView1);
ID_Array=new ArrayList();
NAME_Array=new ArrayList();
电话号码数组=新数组列表();
sqLiteHelper=新的sqLiteHelper(this);
setOnItemClickListener(新的AdapterView.OnItemClickListener()
{
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
//TODO自动生成的方法存根
Intent Intent=new Intent(getApplicationContext(),ShowSingleRecordActivity.class);
intent.putExtra(“ListViewClickedItemValue”,ListViewClickItemArray.get(position.toString());
星触觉(意向);
}
});
}
@凌驾
受保护的void onResume(){
ShowSQLiteDBdata();
super.onResume();
}
私有void ShowSQLiteDBdata(){
sqLiteDatabase=sqLiteHelper.getWritableDatabase();
cursor=sqLiteDatabase.rawQuery(“SELECT*FROM”+SQLiteHelper.TABLE_NAME+”,null);
ID_Array.clear();
NAME_Array.clear();
电话号码数组。清除();
if(cursor.moveToFirst()){
做{
ID_Array.add(cursor.getString(cursor.getColumnIndex(SQLiteHelper.Table_Column_ID));
//将列ID插入数组以在ListView中使用单击侦听器方法。
ListViewClickItemArray.add(cursor.getString(cursor.getColumnIndex(SQLiteHelper.Table_Column_ID));
NAME_Array.add(cursor.getString(cursor.getColumnIndex(SQLiteHelper.Table_Column_1_NAME));
PHONE_NUMBER_Array.add(cursor.getString(cursor.getColumnIndex(SQLiteHelper.Table_Column_2_PhoneNumber));
}while(cursor.moveToNext());
}
listAdapter=new listAdapter(DisplaySQLiteDataActivity.this,
ID_数组,
NAME_数组,
电话号码数组
);
setAdapter(listAdapter);
cursor.close();
}
}

只需修改您的代码,如下所示:

Collections.reverse(ID_Array);
Collections.reverse(NAME_Array);
Collections.reverse(PHONE_NUMBER_Array);
listAdapter = new ListAdapter(DisplaySQLiteDataActivity.this,    
                ID_Array,
                NAME_Array,
                PHONE_NUMBER_Array
        );    
LISTVIEW.setAdapter(listAdapter);

这就是您所需要的,通过这种方式,您的列表甚至在初始化适配器之前就将被反转,然后您的适配器将具有反转的值,这基本上意味着一个反转的适配器。

只需使用
Collections.reverse(arrayList)
对于
arrayList
您要反转,然后使用反转的
arrayList
重置适配器,它将工作得非常顺利。@LalitSinghFauzdar如果我要更改上面显示的代码中的某些内容,我应该在哪里添加集合。反转(arrayList);只要把它放在任何你想反转列表的地方,就像放在onClick或方法中一样。反转arrayList,像上面使用这三个arrayList所做的那样重新初始化listAdapter,然后将适配器设置为列表。编辑-当您最初要反转列表时,将集合放入
Collections.Reverse(yourArraList)。这就是你所需要的。非常感谢兄弟的回答,但当我点击任何项目时,它会打开错误的id项目,因为如果按相反顺序,我如何将我的id持有人设置为总计-selecteditem@ShubhamJangle你用什么来持有身份证?如果这是一个数组或列表,也可以将其反转@尝试使用
intent.putExtra(“ListViewClickedItemValue”,listAdapter.getItem(位置))
Collections.reverse(ID_Array);
Collections.reverse(NAME_Array);
Collections.reverse(PHONE_NUMBER_Array);
listAdapter = new ListAdapter(DisplaySQLiteDataActivity.this,    
                ID_Array,
                NAME_Array,
                PHONE_NUMBER_Array
        );    
LISTVIEW.setAdapter(listAdapter);