2013-05-04 89 views
1

我想要做的是創建一個EditText,在那裏我可以鍵入一些名稱(這樣就會出現一個過濾列表,其名稱與我迄今輸入的名稱相對應)。最後我選擇一個聯繫人。 EditText應顯示我選擇的名稱,但發送一條消息(短信)到與所選聯繫人相對應的號碼。EditText中的聯繫人姓名和電話號碼 - 已過濾的輸入

這裏是我的代碼,這是不完整的: 當然,我有一些設置也是在AndroidManifest文件..

公共類SendSMSActivity延伸活動{

Button buttonSend; 
EditText textPhoneNo; 
EditText textSMS; 
String sms =""; 
ListAdapter lAdapter; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.sendsms); 

    buttonSend = (Button) findViewById(R.id.buttonSend); 
    textPhoneNo = (EditText) findViewById(R.id.editTextPhoneNo);   
    textPhoneNo.addTextChangedListener(new TextWatcher() { 

     @Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 
      // TODO Auto-generated method stub 
      String srchName = textPhoneNo.getText().toString(); 
      Cursor cursor = getContentResolver().query(
        ContactsContract.Contacts.CONTENT_URI, 
        null, 
        ContactsContract.Contacts.HAS_PHONE_NUMBER 
          + " = 1 AND " 
          + ContactsContract.Contacts.DISPLAY_NAME 
          + " like " + "'" + srchName + "%'", 
        null, 
        "UPPER(" + ContactsContract.Contacts.DISPLAY_NAME 
          + ") ASC"); 
      startManagingCursor(cursor); 

      Load(cursor); 
     } 

     @Override 
     public void beforeTextChanged(CharSequence s, int start, int count, 
       int after) { 
      // TODO Auto-generated method stub 

     } 

     @Override 
     public void afterTextChanged(Editable s) { 
      // TODO Auto-generated method stub 

     } 
    }); 
    textSMS = (EditText) findViewById(R.id.editTextSMS); 

    sms = MainActivityClass.tempSms.toString(); 
    Log.d("SendSMSActivity", " sms text = " + sms); 
    textSMS.setText(sms); 
    textSMS.setVisibility(EditText.VISIBLE); 

    buttonSend.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      String phoneNo = textPhoneNo.getText().toString(); 
      //String sms = textSMS.getText().toString(); 


      try { 
       SmsManager smsManager = SmsManager.getDefault(); 
       smsManager.sendTextMessage(phoneNo, null, sms, null, null); 
       Toast.makeText(getApplicationContext(), "SMS Sent!", 
         Toast.LENGTH_LONG).show(); 
      } catch (Exception e) { 
       Toast.makeText(getApplicationContext(), 
         "SMS faild, please try again later!", 
         Toast.LENGTH_LONG).show(); 
       e.printStackTrace(); 
      } 

     } 
}); 

} 

}

+0

autocompletetextview你試過嗎? – Raghunandan 2013-05-04 19:00:33

+0

@Elior到目前爲止,我試圖至少檢索名稱,但我真的不知道如何使用遊標和listAdapter。 – Diana 2013-05-04 19:06:35

+0

@Raghunandan我嘗試過使用addTextChangeListener和TextWatcher!我是newbee,所以我不是真的su重新如何把它放在一起才能得到它的工作。 – Diana 2013-05-04 19:08:43

回答

0

我不知道你有什麼嘗試,但在這一刻我會給一些想法:

  1. 創建您自己的具有姓名和電話成員的聯繫人類。
  2. 使用您的聯繫人列表中的光標和每次迭代創建新聯繫人聯繫人 您從聯繫人列表中收到的姓名和電話。
  3. 當您創建新的聯繫人存儲成一個列表(我的意思是名單如下:List<Contact> contacts = new ArrayList<Contact>();)
  4. 當你在EDITTEXT檢查中鍵入該列表將存儲在您的列表適配器
  5. 如果有一些接觸,包含相同的字符
相關問題