歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android 2.2根據電話號碼查詢聯系人姓名的方法

Android 2.2根據電話號碼查詢聯系人姓名的方法

日期:2017/3/1 10:28:56   编辑:Linux編程
  1. public class AndroidTest extends Activity {
  2. private static final String TAG = "AndroidTest";
  3. private TextView m_TextView;
  4. private EditText m_EditText;
  5. private String mNumber;
  6. @Override
  7. public void onCreate(Bundle savedInstanceState){
  8. super.onCreate(savedInstanceState);
  9. setContentView(R.layout.main);
  10. m_TextView = (TextView) findViewById(R.id.TextView01);
  11. m_EditText = (EditText) findViewById(R.id.EditText01);
  12. m_TextView.setTextSize(20);
  13. /**
  14. * 設置當m_EditText中為空時提示的內容
  15. * 在XML中同樣可以實現:android:hint="請輸入賬號"
  16. */
  17. m_EditText.setHint("請輸入賬號");
  18. /* 設置EditText事件監聽 */
  19. m_EditText.setOnKeyListener(new EditText.OnKeyListener() {
  20. public boolean onKey(View arg0, int arg1, KeyEvent arg2)
  21. {
  22. // TODO Auto-generated method stub
  23. // 得到文字,將其顯示到TextView中
  24. // m_TextView.setText("文本框中內容是:" + m_EditText.getText().toString());
  25. return false;
  26. }
  27. });
  28. m_EditText.setOnFocusChangeListener(new OnFocusChangeListener() {
  29. public void onFocusChange(View v, boolean hasFocus) {
  30. // TODO Auto-generated method stub
  31. mNumber = ((EditText)v).getText().toString();
  32. Log.d(TAG, "mNumber = " + mNumber);
  33. getPeople();
  34. }
  35. });
  36. m_EditText.addTextChangedListener(new TextWatcher() {
  37. public void afterTextChanged(Editable s) {
  38. // TODO Auto-generated method stub
  39. }
  40. public void beforeTextChanged(CharSequence s, int start, int count,
  41. int after) {
  42. // TODO Auto-generated method stub
  43. }
  44. public void onTextChanged(CharSequence s, int start, int before,
  45. int count) {
  46. // TODO Auto-generated method stub
  47. // 得到文字,將其顯示到TextView中
  48. m_TextView.setText("文本框中內容是:" + m_EditText.getText().toString());
  49. }
  50. });
  51. }
  52. /*
  53. * 根據電話號碼取得聯系人姓名
  54. */
  55. public void getPeople() {
  56. String[] projection = { ContactsContract.PhoneLookup.DISPLAY_NAME,
  57. ContactsContract.CommonDataKinds.Phone.NUMBER};
  58. Log.d(TAG, "getPeople ---------");
  59. // 將自己添加到 msPeers 中
  60. Cursor cursor = this.getContentResolver().query(
  61. ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
  62. projection, // Which columns to return.
  63. ContactsContract.CommonDataKinds.Phone.NUMBER + " = '" + mNumber + "'", // WHERE clause.
  64. null, // WHERE clause value substitution
  65. null); // Sort order.
  66. if( cursor == null ) {
  67. Log.d(TAG, "getPeople null");
  68. return;
  69. }
  70. Log.d(TAG, "getPeople cursor.getCount() = " + cursor.getCount());
  71. for( int i = 0; i < cursor.getCount(); i++ )
  72. {
  73. cursor.moveToPosition(i);
  74. // 取得聯系人名字
  75. int nameFieldColumnIndex = cursor.getColumnIndex(ContactsContract.PhoneLookup.DISPLAY_NAME);
  76. String name = cursor.getString(nameFieldColumnIndex);
  77. Log.i("Contacts", "" + name + " .... " + nameFieldColumnIndex); // 這裡提示 force close
  78. m_TextView.setText("聯系人姓名:" + name);
  79. }
  80. }
  81. }
Copyright © Linux教程網 All Rights Reserved