繁体   English   中英

需要有关如何在适配器类上使用onActivityResult()的帮助?

[英]Need help on how to use onActivityResult() on Adapter Class?

当我使用super.onActivityResult(requestCode, resultCode, data);时,我试图从适配器类的联系人列表中返回电话号码super.onActivityResult(requestCode, resultCode, data); 我出错了。

btnContactGift.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(Intent.ACTION_PICK, 
ContactsContract.Contacts.CONTENT_URI);
                // Show only contacts with phone numbers

intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE);
                // Start the Contacts activity
                context.startActivityForResult(intent, PICK_CONTACT);

            }
        });





public void onActivityResult(int requestCode, int resultCode, Intent data) {

 super.onActivityResult(requestCode, resultCode, data);


    switch (requestCode) {
        case PICK_CONTACT :
            if (resultCode == Activity.RESULT_OK) {
                Uri contactData = data.getData();
String[] projection = {ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,ContactsContract.CommonDataKinds.Phone.NUMBER,ContactsContract.CommonDataKinds.Photo.PHOTO_THUMBNAIL_URI};
Cursor c = conR.query(contactData, projection, null, null, null);
                c.moveToFirst();
int nameIdx =c.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME);
int phoneNumberIdx =c.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);
int photoIdx = c.getColumnIndex(ContactsContract.CommonDataKinds.Photo.PHOTO_THUMBNAIL_URI);
                String name = c.getString(nameIdx);
                String phoneNumber = c.getString(phoneNumberIdx);
                String photo = c.getString(photoIdx);
                if (name == null) {
                    name = "No Name";
                }
                String nwPhone = phoneNumber.replace("+251", "0");

                edtPhoneGift.setText(nwPhone);
                c.close();

                // Now you have the phone number

            }
            break;
    }
 }

无法解析方法onActivityResult(int,int,Intent)

onActivityResult()需要在您调用startActivityForResult()的活动或片段上实现。 在您的情况下,这就是context所标识的任何活动或片段(来自context.startActivityForResult(intent, PICK_CONTACT) )。

只需删除对super super.onActivityResult(requestCode, resultCode, data)的调用,则不需要。

另外,您需要将投影中的ContactsContract.CommonDataKinds.Photo.PHOTO_THUMBNAIL_URI更改为其他内容,您可以从电话选择器意图返回的Uri获取Photo.XXX字段,仅在Phone.XXX内的列或隐式连接到其中。您可以尝试改用Contacts.PHOTO_ID

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM