如何在android中向我的应用程序中插入进度条

如何在android中向我的应用程序中插入进度条,android,android-contacts,android-progressbar,contactscontract,Android,Android Contacts,Android Progressbar,Contactscontract,我是android新手。在这里,我创建了一些应用程序,比如读取手机联系人,并将其存储到csv文件格式文件中。读取联系人需要很长时间。同时,在文件写入联系人详细信息之前,我需要使用进度条。现在我很困惑,我的代码中哪里可以插入进度条 我的编码是 private String getPrimaryNumber(long _id) { String primaryNumber = null; try { Cursor curs

我是android新手。在这里,我创建了一些应用程序,比如读取手机联系人,并将其存储到csv文件格式文件中。读取联系人需要很长时间。同时,在文件写入联系人详细信息之前,我需要使用进度条。现在我很困惑,我的代码中哪里可以插入进度条

我的编码是

  private String getPrimaryNumber(long _id) {
           String primaryNumber = null;
           try {
               Cursor cursor = getContentResolver().query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                       new String[]{Phone.NUMBER, Phone.TYPE},
                       ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = "+ _id, // We need to add more selection for phone type
                       null,
                       null);
               if(cursor != null) {
                   while(cursor.moveToNext()){
                       switch(cursor.getInt(cursor.getColumnIndex(Phone.TYPE))){
                           case Phone.TYPE_MOBILE :
                               primaryNumber = cursor.getString(cursor.getColumnIndex(Phone.NUMBER));
                               break;
                           case Phone.TYPE_HOME :
                               primaryNumber = cursor.getString(cursor.getColumnIndex(Phone.NUMBER));
                               break;
                           case Phone.TYPE_WORK :
                               primaryNumber = cursor.getString(cursor.getColumnIndex(Phone.NUMBER));
                               break;
                           case Phone.TYPE_OTHER :
                       }
                       if(primaryNumber != null)
                           break;
                   }
               }       
           } catch (Exception e) {
               Log.i("test", "Exception " + e.toString());
           } finally {
               if(cursor != null) {
                   cursor.deactivate();
                   cursor.close();             
               }
           }
           return primaryNumber;
       }
这是从手机中读取联系人的代码。在该代码中,我可以添加进度条。。。请帮助任何人。。提前谢谢

您需要实现并显示进度条

一个不错的教程。

试试这个:

 protected Void doInBackground(Void... params) {
        ContentResolver cr = getContentResolver();
        Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null,
                null, null, null);


    if (cur.getCount() > 0) {
        while (cur.moveToNext()) {
            String id = cur.getString(cur
                    .getColumnIndex(ContactsContract.Contacts._ID));
            String name = cur
                    .getString(cur
                            .getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
            if (Integer
                    .parseInt(cur.getString(cur
                            .getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {
                System.out.println("name : " + name + ", ID : " + id);
                // Result=Result+ "Name: "+name;
                // get the phone number
                Cursor pCur = cr.query(
                        ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                        null,
                        ContactsContract.CommonDataKinds.Phone.CONTACT_ID
                                + " = ?", new String[] { id }, null);
                while (pCur.moveToNext()) {
                    String phone = pCur
                            .getString(pCur
                                    .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));

                    publishProgress("Name:" + name + ",Number:" + phone
                            + "\n");
                }
                pCur.close();
            }
        }
    }
    return null;
}

它只是返回一个字符串,不能占用更多的时间吗?这个作业的进度条似乎是多余的。@Naser谢谢你的回复。。对于200个联系人,请阅读。。需要一些时间吗?这就是为什么我需要实现进度条。。