ListView中的数据排序来自SQLite

时间:2015-07-09 07:23:33

标签: android sqlite listview

我希望ListView中的排序数据来自带有getAllContacts()

的SQLite
  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];
        }
    };
}

1 个答案:

答案 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);