安卓開發:獲取手機通訊錄信息


 

  寫一個安卓軟件,實現獲取通訊錄里的人名和對應的電話號碼,並且通過ListView顯示出來。

 

  因為要獲取手機本地的信息,所以第一個步驟就是先給定權限咯

 <uses-permission android:name="android.permission.READ_CONTACTS"/>

 

 

因為獲取到信息后是通過ListView顯示出來,所以把布局寫好,總共兩個布局,一個布局放ListView,一個布局放ListView的子布局,這里比較基礎,就不放代碼了

 

接着就是通過java代碼實現功能了

package com.contentprovide.liuliu.test_9_12_01;

import android.database.Cursor;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.support.v7.app.AppCompatActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

public class MainActivity extends AppCompatActivity {

ListView mylist;

List<HashMap<String, String>> list;
HashMap<String, String> hash;

Cursor cursor;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

mylist = (ListView) findViewById(R.id.list);
list = new ArrayList();

// 實例化數據庫指針
cursor = this.getContentResolver().
query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null);

// 獲取本地通訊錄信息,並通過鍵值對的方式放進ArrayList數組中
while (cursor.moveToNext()) {

String get_name = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
String get_number = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));

hash = new HashMap<>();
hash.put("h_name", get_name);
hash.put("h_number", get_number);

list.add(hash);
}

mylist.setAdapter(new MyAdapter());

}

// 適配器
class MyAdapter extends BaseAdapter {

@Override
public int getCount() {
return list.size();
}

@Override
public Object getItem(int i) {
return i;
}

@Override
public long getItemId(int i) {
return i;
}

@Override
public View getView(int i, View view, ViewGroup viewGroup) {

Myholder myholder;

if (view == null) {
view = LayoutInflater.from(getApplicationContext()).inflate(R.layout.item, null);
myholder = new Myholder();

myholder.myname = view.findViewById(R.id.name);
myholder.mynumber = view.findViewById(R.id.number);

view.setTag(myholder);

} else {

myholder = (Myholder) view.getTag();

}


myholder.myname.setText(list.get(i).get("h_name"));
myholder.mynumber.setText(list.get(i).get("h_number"));


return view;


}

class Myholder {
TextView myname;
TextView mynumber;
}
}


}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM