Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.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 ArrayList排序,其中数据来自SQLite_Java_Android - Fatal编程技术网

Java ArrayList排序,其中数据来自SQLite

Java ArrayList排序,其中数据来自SQLite,java,android,Java,Android,我想在android中对arraylist进行排序,数据是通过数据库添加的。 我该怎么做?请帮帮我 import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.provider.Contact

我想在android中对arraylist进行排序,数据是通过数据库添加的。 我该怎么做?请帮帮我

    import android.content.ContentValues;
    import android.content.Context;
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
    import android.provider.ContactsContract;

    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Comparator;

    /**
     * Created by Imran on 10/25/2015.
     */
    public class DataSource {

        private DatabaseHelper databaseHelper;

        private SQLiteDatabase database;

        private ContactModel contactModel;


        public DataSource(Context context) {
            databaseHelper = new DatabaseHelper(context);
        }

        public void open(){
            database= databaseHelper.getWritableDatabase();
        }
        public void close(){
            databaseHelper.close();
        }

        public long insertData(ContactModel contactModel){
            this.open();
            ContentValues contentValues=new ContentValues();

            contentValues.put(DatabaseHelper.COL_NAME,contactModel.getName());

            contentValues.put(DatabaseHelper.COL_COMPANY,contactModel.getCompanyName());

            contentValues.put(DatabaseHelper.COL_DESIGNATION,contactModel.getDesignation());

            contentValues.put(DatabaseHelper.COL_PHONE_NO,contactModel.getPhoneNo());

            contentValues.put(DatabaseHelper.COL_EMAIL,contactModel.getEmail());



            long inserted=database.insert(DatabaseHelper.CONTACT_TABLE,null,contentValues);
            database.close();
            this.close();

            return inserted;
        }


        public boolean updateData(String id,ContactModel contactModel){


            this.open();
            ContentValues contentValues=new ContentValues();

            contentValues.put(DatabaseHelper.COL_NAME,contactModel.getName());

            contentValues.put(DatabaseHelper.COL_COMPANY,contactModel.getCompanyName());

            contentValues.put(DatabaseHelper.COL_DESIGNATION,contactModel.getDesignation());

            contentValues.put(DatabaseHelper.COL_PHONE_NO,contactModel.getPhoneNo());

            contentValues.put(DatabaseHelper.COL_EMAIL, contactModel.getEmail());

            long update=database.update(DatabaseHelper.CONTACT_TABLE, contentValues, DatabaseHelper.COL_ID + " = " + id,
                    null);

            if (update>0){
                return true;
            }else {
                return false;
            }

        }

        public ArrayList<ContactModel> getAllContact(){
            this.open();
            ArrayList<ContactModel> contactModelArrayList=new ArrayList<>();
            ArrayList<ContactModel> sortedContactModelArrayList=new ArrayList<>();


            Cursor cursor=database.query(DatabaseHelper.CONTACT_TABLE, null, null, null, null, null, null);

            if(cursor!=null && cursor.getCount()>0){
                cursor.moveToFirst();

                for(int i=0;i<cursor.getCount();i++){
                    String id=cursor.getString(cursor.getColumnIndex(DatabaseHelper.COL_ID));
                    String name=cursor.getString(cursor.getColumnIndex(DatabaseHelper.COL_NAME));
                    String company=cursor.getString(cursor.getColumnIndex(DatabaseHelper.COL_COMPANY));
                    String designation=cursor.getString(cursor.getColumnIndex(DatabaseHelper.COL_DESIGNATION));
                    String phoneNo=cursor.getString(cursor.getColumnIndex(DatabaseHelper.COL_PHONE_NO));
                    String email=cursor.getString(cursor.getColumnIndex(DatabaseHelper.COL_EMAIL));


                    contactModel=new ContactModel(id,name,company,designation,phoneNo,email);

                    contactModelArrayList.add(contactModel);
                    cursor.moveToNext();
                    this.close();


                }
            }
         /*   Collections.sort(contactModelArrayList, new Comparator<>() {
                @Override
                public int compare(String s1, String s2) {
                    return s1.compareToIgnoreCase(s2);
                }
            });*/

            sortedContactModelArrayList=Collections.sort(contactModelArrayList);

            return sortedContactModelArrayList;
        }

        public boolean delete(String id){
            this.open();
            database.delete(DatabaseHelper.CONTACT_TABLE, DatabaseHelper.COL_ID + "=" + id, null);
            this.close();
            return true;
        }

        public ContactModel singleContact(String id){
            this.open();
            Cursor cursor=database.query(DatabaseHelper.CONTACT_TABLE,
                    new String[]{DatabaseHelper.COL_ID,DatabaseHelper.COL_NAME,DatabaseHelper.COL_COMPANY,DatabaseHelper.COL_DESIGNATION,
                            DatabaseHelper.COL_PHONE_NO,DatabaseHelper.COL_EMAIL},DatabaseHelper.COL_ID +" = " + id,null,null,null ,null);
            cursor.moveToFirst();

            String mId=cursor.getString(cursor.getColumnIndex(DatabaseHelper.COL_ID));
            String name=cursor.getString(cursor.getColumnIndex(DatabaseHelper.COL_NAME));
            String company=cursor.getString(cursor.getColumnIndex(DatabaseHelper.COL_COMPANY));
            String designation=cursor.getString(cursor.getColumnIndex(DatabaseHelper.COL_DESIGNATION));
            String phoneNo=cursor.getString(cursor.getColumnIndex(DatabaseHelper.COL_PHONE_NO));
            String email=cursor.getString(cursor.getColumnIndex(DatabaseHelper.COL_EMAIL));
            cursor.close();
            contactModel=new ContactModel(mId,name,company,designation,phoneNo,email);;
            this.close();
            return contactModel;
        }


    }
导入android.content.ContentValues;
导入android.content.Context;
导入android.database.Cursor;
导入android.database.sqlite.SQLiteDatabase;
导入android.provider.contacts合同;
导入java.util.ArrayList;
导入java.util.Collections;
导入java.util.Comparator;
/**
*由Imran于2015年10月25日创建。
*/
公共类数据源{
专用数据库助手数据库助手;
专用数据库;
私有联系人模型;
公共数据源(上下文){
databaseHelper=新的databaseHelper(上下文);
}
公开作废{
database=databaseHelper.getWritableDatabase();
}
公众假期结束(){
databaseHelper.close();
}
公共长插入数据(ContactModel ContactModel){
这个.open();
ContentValues ContentValues=新ContentValues();
put(DatabaseHelper.COL_NAME,contactModel.getName());
put(DatabaseHelper.COL_COMPANY,contactModel.getCompanyName());
contentValues.put(DatabaseHelper.COL_DESIGNATION,contactModel.getDesignation());
contentValues.put(DatabaseHelper.COL_PHONE_NO,contactModel.getPhoneNo());
contentValues.put(DatabaseHelper.COL_EMAIL,contactModel.getEmail());
long inserted=database.insert(DatabaseHelper.CONTACT_表,null,contentValues);
close()数据库;
这个。关闭();
返回插入;
}
公共布尔更新数据(字符串id,ContactModel ContactModel){
这个.open();
ContentValues ContentValues=新ContentValues();
put(DatabaseHelper.COL_NAME,contactModel.getName());
put(DatabaseHelper.COL_COMPANY,contactModel.getCompanyName());
contentValues.put(DatabaseHelper.COL_DESIGNATION,contactModel.getDesignation());
contentValues.put(DatabaseHelper.COL_PHONE_NO,contactModel.getPhoneNo());
contentValues.put(DatabaseHelper.COL_EMAIL,contactModel.getEmail());
长更新=database.update(DatabaseHelper.CONTACT_表,contentValues,DatabaseHelper.COL_ID+“=”+ID,
无效);
如果(更新>0){
返回true;
}否则{
返回false;
}
}
公共阵列列表getAllContact(){
这个.open();
ArrayList contactModelArrayList=新建ArrayList();
ArrayList sortedContactModelArrayList=新建ArrayList();
Cursor Cursor=database.query(DatabaseHelper.CONTACT_表,null,null,null,null,null);
if(cursor!=null&&cursor.getCount()>0){
cursor.moveToFirst();

对于(int i=0;i当您有一个
字符串列表时,您可以按字母顺序对它们进行排序,例如

Collections.sort(list);

其中
list
是带字符串的数组

从数据库检索时,必须使用
ORDER BY
按所需的方式对数据进行排序,然后可以将此排序后的数据添加到arraylist。如果有添加对象到arraylist,是否可以?并且应该添加此行?最好的决定是在添加过程结束时对数组进行排序ess(将所有字符串添加到列表中后),但如果您需要,可以在每次添加迭代后对数组进行排序。我已尝试使用上面的代码上载。但它不起作用。请您帮助我修复。aaaa,您的ArrayList不是字符串,而是对象,具有字符串类型的字段,因此要对它们进行比较,您应该在ContactModel类中实现
Compariable
并编写一个方法,将它们按名称进行比较,例如。在此处查看“选定为最佳答案”: