Java 按相反顺序自定义listview
我从活动中获取数据,将其保存到sqlite db并在listview中显示。但我希望它以相反的顺序显示列表。这是我的列表视图查看活动。 我无法理解应该为反向顺序列表视图添加什么 编辑:我应该在哪里添加Collection.reverse(arraylist)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
@覆盖
创建时受保护的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)在初始化listAdapter之前,为所有三个列表(idArray、nameArray和phoneNoArray)编写代码>。这就是你所需要的。非常感谢兄弟的回答,但当我点击任何项目时,它会打开错误的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);