如何在android中向我的应用程序中插入进度条
我是android新手。在这里,我创建了一些应用程序,比如读取手机联系人,并将其存储到csv文件格式文件中。读取联系人需要很长时间。同时,在文件写入联系人详细信息之前,我需要使用进度条。现在我很困惑,我的代码中哪里可以插入进度条 我的编码是如何在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
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个联系人,请阅读。。需要一些时间吗?这就是为什么我需要实现进度条。。