startActivityForResult无法从选项卡中找到onActivityResult

时间:2015-06-03 17:00:46

标签: android

我正在开发带有标签的软电话,我的问题是我想要点击一个按钮选择一个联系人,一切正常我正在开发这个没有标签.i.e。没有标签的应用程序,我发现这里有很多这样的问题,但没有一个解决我的问题。

这里是选择联系人的代码

private static final int PICK_CONTACT = 0;


pickContactButton.setOnClickListener(new View.OnClickListener()
    {
            @Override
            public void onClick(View view)
            {
                    Intent intentContact = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
                    getParent().startActivityForResult(intentContact, PICK_CONTACT);
            }
    });      

这里是onActivityResult

@Override
public void onActivityResult(int reqCode, int resultCode, Intent data){ 
      System.out.println("inside onActivityResult........");
      super.onActivityResult(reqCode, resultCode, data);
   switch(reqCode){

      case (0):
        if (resultCode == Activity.RESULT_OK){
            Uri contactData = data.getData();
            Cursor c = managedQuery(contactData, null, null, null, null);
         if (c.moveToFirst()){
         String id = c.getString(c.getColumnIndexOrThrow(ContactsContract.Contacts._ID));

         String hasPhone =
         c.getString(c.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));

         if (hasPhone.equalsIgnoreCase("1")){
        Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null, 
         ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = "+ id,null, null);
           phones.moveToFirst();
           String cNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
          // Toast.makeText(getApplicationContext(), cNumber, Toast.LENGTH_SHORT).show();
           //setCn(cNumber);
           System.out.println("cNumber: " + cNumber);
         }
        }
      }
   }
  }

问题是startActivityForResult从未调用过onActivityResult

2 个答案:

答案 0 :(得分:0)

PICK_CONTACT常数的值是多少?确保PICK_CONTACT = 0

答案 1 :(得分:-1)

您是否覆盖方法onActivityResult()? 如果没有,请确保在方法中添加@Override注释。