流泪求达人进来看看……添加联系人的界面如何去得到用户在文本框里输入的文字?

舟_雨 2011-01-12 05:17:14
已经头疼两天了……

需求:
在添加联系人的界面(com.android.contacts.ui.EditContactActivity)下,去得到用户在文本框里输入的名字,然后把输入的名字和电话本里现有的名字比较,如有重复,则提示用户。


得到电话本里的联系人名字和号码很容易。pass.
头疼的来了!!——如何去得到用户在文本框里输入的文字?!?!?! 按常理是类似于((EditText)findViewById(R.id.xxxxx)).getText().toString;可问题是我找了半天,找不到任何一个EditText的影子……不知道被封装到哪里去了!!!也不知道文本框里的值在提交的时候存储在哪了!!!
流泪,急盼回答……谢谢各位大虾先!!!
...全文
190 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
六百万 2011-05-30
  • 打赏
  • 举报
回复
android\packages\apps\Contacts\src\com\android\contacts\ui\EditContactActivity.java文件里,
有一个变量EntitySet mState;
EntitySet是个ArrayList<EntityDelta>,
ArrayList<ValuesDelta> inputName= new ArrayList<ValuesDelta>();
ArrayList<ValuesDelta> inputPhonenumbers= new ArrayList<ValuesDelta>();
if (mState != null)
{
for(EntityDelta element: mState)
{
inputName= element.getMimeEntries("vnd.android.cursor.item/name");
inputPhonenumbers= element.getMimeEntries("vnd.android.cursor.item/phone_v2");
}
}
String inputGivenName= inputName.get(0).getAsString("data2");//得到输入的 名
String inputFamilyName= inputName.get(0).getAsString("data3");//得到输入的姓
ArrayList<String> inputNumbers= new ArrayList<String>();
if ( inputPhonenumbers != null )//得到所有输入的号码
{
for(ValuesDelta element: inputPhonenumbers)
{
inputNumbers.add(element.getAsString("data1"));
}
}
注意写空指针保护。
dinjay 2011-01-12
  • 打赏
  • 举报
回复
也不知道文本框里的值在提交的时候存储在哪了!!!
ANS:输入法内部会存储提交的内容,然后发送到编辑框中,输入法发送内容也是调用系统提供的方法,至于是什么编辑框,输入法本身是不知道的
dinjay 2011-01-12
  • 打赏
  • 举报
回复
LZ,很负责任的告诉你,如果不是自己应用中的EditText,是不可能获取到系统的编辑框窗口的...

80,348

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧