Java onActivityResult参数传递的意图如何与我的应用程序一起工作?

Java onActivityResult参数传递的意图如何与我的应用程序一起工作?,java,android,android-intent,Java,Android,Android Intent,有人能解释一下如何使用onActivityResult参数中的data变量使代码工作吗 我看到这个变量被用来调用getData(),但是我不清楚这个变量是如何连接到这个方法之外的意图的。 此外,调用data.getData() 基本上,我正在试图理解这段代码 @Override public void onActivityResult(int reqCode, int resultCode, **Intent data**){ super.onActivityResult

有人能解释一下如何使用
onActivityResult
参数中的
data
变量使代码工作吗

我看到这个变量被用来调用
getData()
,但是我不清楚这个变量是如何连接到这个方法之外的意图的。 此外,调用
data.getData()

基本上,我正在试图理解这段代码

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

        switch (reqCode) {
            case (PICK_CONTACT) :
                if (resultCode == Activity.RESULT_OK) {

                    Uri contactData = **data**.getData();
                    Cursor c =  getContentResolver().query(**contactData**, null, null, null, null);
                    if (c.moveToFirst()) {
                        String name = c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
                        // TODO Whatever you want to do with the selected contact name.
                       //ImageView imageView = (ImageView)findViewById(R.id.imageView);
                       //Picasso.with(this).load("https://cms-assets.tutsplus.com/uploads/users/21/posts/19431/featured_image/CodeFeature.jpg").into(imageView);
                        FragmentManager FM = getFragmentManager();
                        FragmentTransaction FT = FM.beginTransaction();
                        FragmentActivity F1 = new FragmentActivity();



                        FT.add(R.id.frame_layout, F1);
                        FT.commit();

                    }
                }
                break;
        }

    }
有人能帮我弄明白吗?

看看这里:

在链接中,您可以看到您可以为
意图数据提供一个bundle或extra,您可以使用getData()方法获得这些数据。

请看这里:

在链接中,您可以看到您可以为
意图数据提供一个bundle或extra,您可以使用getData()方法获得这些数据。

请看这里:

在链接中,您可以看到您可以为
意图数据提供一个bundle或extra,您可以使用getData()方法获得这些数据。

请看这里:


在该链接中,您可以看到,您可以为
意图数据提供一个捆绑包或附加包,您可以使用getData()方法获得这些捆绑包或附加包。

假设调用的活动(由
startActivityForResult()
启动)在完成之前设置结果,如下所示:

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

        switch (reqCode) {
            case (PICK_CONTACT) :
                if (resultCode == Activity.RESULT_OK) {

                    Uri contactData = data.getData();
                    Cursor c =  getContentResolver().query(contactData, null, null, null, null);
要获取调用活动中的值,请使用

Intent data = new Intent();
data.putExtra ("aValue", 42);
getActivity().setResult(Activity.RESULT_OK, data);
finish();
此示例基于
int
,但是,可以传递许多其他值类型。请参阅Androids文档


p、 让我补充一点,它与
void Intent.setData(Uri)
Uri Intent.getData()
的工作方式相同,而不是
putExtra(…)
getExtra(…)
让我们假设被调用的活动(由
startActivityForResult()
启动)在完成之前设置结果如下:

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

        switch (reqCode) {
            case (PICK_CONTACT) :
                if (resultCode == Activity.RESULT_OK) {

                    Uri contactData = data.getData();
                    Cursor c =  getContentResolver().query(contactData, null, null, null, null);
要获取调用活动中的值,请使用

Intent data = new Intent();
data.putExtra ("aValue", 42);
getActivity().setResult(Activity.RESULT_OK, data);
finish();
此示例基于
int
,但是,可以传递许多其他值类型。请参阅Androids文档


p、 让我补充一点,它与
void Intent.setData(Uri)
Uri Intent.getData()
的工作方式相同,而不是
putExtra(…)
getExtra(…)
让我们假设被调用的活动(由
startActivityForResult()
启动)在完成之前设置结果如下:

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

        switch (reqCode) {
            case (PICK_CONTACT) :
                if (resultCode == Activity.RESULT_OK) {

                    Uri contactData = data.getData();
                    Cursor c =  getContentResolver().query(contactData, null, null, null, null);
要获取调用活动中的值,请使用

Intent data = new Intent();
data.putExtra ("aValue", 42);
getActivity().setResult(Activity.RESULT_OK, data);
finish();
此示例基于
int
,但是,可以传递许多其他值类型。请参阅Androids文档


p、 让我补充一点,它与
void Intent.setData(Uri)
Uri Intent.getData()
的工作方式相同,而不是
putExtra(…)
getExtra(…)
让我们假设被调用的活动(由
startActivityForResult()
启动)在完成之前设置结果如下:

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

        switch (reqCode) {
            case (PICK_CONTACT) :
                if (resultCode == Activity.RESULT_OK) {

                    Uri contactData = data.getData();
                    Cursor c =  getContentResolver().query(contactData, null, null, null, null);
要获取调用活动中的值,请使用

Intent data = new Intent();
data.putExtra ("aValue", 42);
getActivity().setResult(Activity.RESULT_OK, data);
finish();
此示例基于
int
,但是,可以传递许多其他值类型。请参阅Androids文档


p、 让我补充一下,它与
void Intent.setData(Uri)
Uri Intent.getData()
的工作方式相同,而不是
putExtra(…)
getExtra(…)
数据变量是您在结束活动中指定的意图。当您想完成使用
startActivityForResult()
调用的活动时,应该调用setResult()

作为第一个参数,您应该设置结果代码(
result\u OK
result\u cancelled
,…)。您还可以添加第二个,它应该是一个Intent,并且将包含您希望在
onActivityResult()
中接收的信息。这就是onActivityResult()中的数据变量


如果您想了解更多关于
getData()
,可以选中此项:

数据变量是您在结账活动中指定的意图。当您想完成使用
startActivityForResult()
调用的活动时,应该调用setResult()

作为第一个参数,您应该设置结果代码(
result\u OK
result\u cancelled
,…)。您还可以添加第二个,它应该是一个Intent,并且将包含您希望在
onActivityResult()
中接收的信息。这就是onActivityResult()中的数据变量


如果您想了解更多关于
getData()
,可以选中此项:

数据变量是您在结账活动中指定的意图。当您想完成使用
startActivityForResult()
调用的活动时,应该调用setResult()

作为第一个参数,您应该设置结果代码(
result\u OK
result\u cancelled
,…)。您还可以添加第二个,它应该是一个Intent,并且将包含您希望在
onActivityResult()
中接收的信息。这就是onActivityResult()中的数据变量


如果您想了解更多关于
getData()
,可以选中此项:

数据变量是您在结账活动中指定的意图。当您想完成使用
startActivityForResult()
调用的活动时,应该调用setResult()

作为第一个参数,您应该设置结果代码(
result\u OK
result\u cancelled
,…)。您还可以添加第二个,它应该是一个Intent,并且将包含您希望在
onActivityResult()
中接收的信息。这就是onActivityResult()中的数据变量

如果您想了解有关
getData()
的更多信息,可以检查以下内容: