意图问题,返回值(Android)

Mic*_*aël 5 java android

我有一个使用intent打开其他类的应用程序:

私人无效createRepository(){
        Intent j = new Intent(this,Repository.class);
        startActivityForResult(j,ACTIVITY_CREATE);
    }

在Repository.class中,我们有onActivityResult方法:

public void onActivityResult(int reqCode,int resultCode,Intent data){
      super.onActivityResult(reqCode,resultCode,data);

      开关(reqCode){
        情况(PICK_CONTACT):
          如果(resultCode == Activity.RESULT_OK){
            Uri contactData = data.getData();
            c = managedQuery(contactData,null,null,null,null);
            如果(c.moveToFirst()){
              //字符串名称= c.getString(c.getColumnIndexOrThrow(People.NAME));
              num = c.getString(c.getColumnIndexOrThrow(People.NUMBER));

            }    

          }    
        打破;
      }
      完();
    }

我不知道如何将num的值返回到第一类(创建Repository.class)。谢谢您的帮助。米恰尔

bus*_*ter 6

我想你把方向搞混了。

在 Repository 类中,您必须setResult()在调用完成之前完成。对于其他数据,您可以putExtra()数据。

例如,在onCreate()函数中设置您的结果。

在您的调用类(启动 Repository 的类)中,您onActivityResult(int requestCode, int resultCode, Intent data)使用data.getBundleExtra().

Androids 对 Intent 和 Activity 的参考有很好的描述,示例还包含一个 ReceiveResult 和 SendResult 示例。