在片段中使用 onActivityResult

rgr*_*eso 5 java android onactivityresult

您好,我想从联系人中选择一个电话号码并将其插入到 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;
    }
Run Code Online (Sandbox Code Playgroud)

错误:RESULT_OK 无法解析为变量

方法 managedQuery(Uri, null, null, null, null) 对于 new View.OnClickListener(){} 类型未定义

Aks*_*hay 0

要从手机访问联系人,请确保您android.permission.READ_CONTACTS在清单文件中添加了权限。