我希望ListView中的排序数据来自带有getAllContacts()
public List<News> getAllContacts() {
String[] yek_name = new String[] { KEY_ID, KEY_NID, KEY_ONVAN, KEY_MATN, KEY_Tarikh,
KEY_FAV, KEY_KHAND, KEY_NNEW, KEY_SUBJ, KEY_SUBJID };
Cursor cursor = db.query(DATABASE_TABLE, yek_name, null, null, null,
null, KEY_ID + " DESC");
List<News> nams = cursorToList(cursor);
return nams;
}
我使用Order By - &gt; KEY_ID + " DESC"
但无效,使用KEY_ID + " ASC"
时无法在ListView中更改
你能否检查一下哪里出错了。
News.java
public class News implements Parcelable {
private int id;
private int nid;
private String ntitle;
private String ntext;
private String ndata;
private int fav;
private int khande;
private int nnew;
private int subj;
private int subjid;
public News(){
}
public int getId(){
return id;
}
public void setId(int id){
this.id = id;
}
public int getnId(){
return nid;
}
public void setnId(int nid){
this.nid = nid;
}
public String getOnvan(){
return ntitle;
}
public void setOnvan(String onvan){
this.ntitle = onvan;
}
public String getMatn (){
return ntext;
}
public void setMatn(String matn){
this.ntext = matn;
}
public String getTarikh(){
return ndata;
}
public void setTarikh(String tarikh){
this.ndata = tarikh;
}
public int getFav(){
return fav;
}
public void setFav(int fav){
this.fav = fav;
}
public int getKhande(){
return khande;
}
public void setKhande(int khande){
this.khande = khande;
}
public int getnNew(){
return nnew;
}
public void setnNew(int nnew){
this.nnew = nnew;
}
public int getSubject(){
return subj;
}
public void setSubject(int subject){
this.subj = subject;
}
public int getSubjectid(){
return subjid;
}
public void setSubjectid(int subjectid){
this.subjid = subjectid;
}
public News (Parcel in){
id = in.readInt();
nid = in.readInt();
ntitle = in.readString();
ntext = in.readString();
ndata = in.readString();
fav = in.readInt();
khande = in.readInt();
nnew= in.readInt();
subj= in.readInt();
subjid= in.readInt();
}
@Override
public int describeContents() {
// TODO Auto-generated method stub
return 0;
}
@Override
public void writeToParcel(Parcel fet, int arg1) {
// TODO Auto-generated method stub
fet.writeInt(id);
fet.writeInt(nid);
fet.writeString(ntitle);
fet.writeString(ntext);
fet.writeString(ndata);
fet.writeInt(fav);
fet.writeInt(khande);
fet.writeInt(nnew);
fet.writeInt(subj);
fet.writeInt(subjid);
}
public static final Parcelable.Creator<News> CREATOR = new Parcelable.Creator<News>() {
@Override
public News createFromParcel(Parcel arg0) {
// TODO Auto-generated method stub
return new News(arg0);
}
@Override
public News[] newArray(int arg0) {
// TODO Auto-generated method stub
return new News[arg0];
}
};
}
答案 0 :(得分:1)
你可以简单地使用Collections。如果你想缩短bean类的Object而不是以这种方式使用它。
Collections.sort(list, new Comparator<Object>(){
public int compare(Object o1, Object o2) {
ContactPhone p1 = (ContactPhone) o1;
ContactPhone p2 = (ContactPhone) o2;
return p1.getName().compareToIgnoreCase(p2.getName());
}
});
否则对于Strings只需使用:
Collections.sort(contactList, String.CASE_INSENSITIVE_ORDER);