【发布时间】:2014-03-30 20:00:57
【问题描述】:
嗨,在片段中我想从联系人中选择一个电话号码并将其插入到 EditText 中
但它在片段中不起作用我在活动中使用它并且它起作用。请你帮我改一下
public class Encrypt extends Fragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.encrypt, null);
phoneNumberDisplay = (EditText) v.findViewById(R.id.editTextPhoneNumber);
contactsButton=(Button)v.findViewById(R.id.buttonContacts);
contactsButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(v==contactsButton){
Intent intent=new Intent(Intent.ACTION_PICK,Contacts.CONTENT_URI);
intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE);
startActivityForResult(intent, 1);
}
}
});
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
Uri ur = data.getData();
Cursor c = managedQuery(ur, null, null, null, null);
if (c.moveToFirst()) {
String s = c.getString(c.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
phoneNumberDisplay.setText(s);
}
}
}
return v;
}
错误:RESULT_OK 无法解析为变量
方法 managedQuery(Uri, null, null, null, null) 对于 new 类型未定义 View.OnClickListener(){}
【问题讨论】:
-
似乎还可以,您是否尝试调试并检查是否已调用 onActivityResult ?
-
@UdiOshi 无法运行它,它在 onActivityResult 下划线并写道:void 是变量 onActivityResult 的无效类型
-
@rgreso 看看我的回答,它可能解决了你的问题。
标签: java android onactivityresult