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()
的更多信息,可以检查以下内容: