【发布时间】:2013-05-04 18:56:40
【问题描述】:
我想要做的是有一个 EditText,我可以在那里输入一些名称(这样会出现一个过滤列表,其中的名称与我迄今为止输入的内容相对应)。最后我选择了一个联系人。 EditText 应显示我选择的姓名,但会向与所选联系人对应的号码发送消息(短信)。
这是我的代码,不完整: 当然我在 AndroidManifest 文件中也有一些设置..
公共类 SendSMSActivity 扩展 Activity {
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();
}
}
});
}
}
【问题讨论】:
-
autocompletetextview 你试过这个吗?
-
@Elior 到目前为止,我至少尝试检索名称,但我不确定如何使用光标和 listAdapter。我迷路了。
-
@Raghunandan 我尝试过使用 addTextChangeListener 和 TextWatcher!我是新手,所以我不确定如何将它组合在一起以使其发挥作用。
-
@Diana 你能发布你的代码吗?看看有什么问题会更有帮助
-
好的,我认为我建议的方式会更容易......而且效率更高......以我的方式(根据我的回答),首先你阅读所有联系人并将其保存到列表中。 . 然后当文本更改时,您会显示包含您键入的字符的联系人
标签: android filter android-edittext phone-number contact-list