gpt4 book ai didi

android - 使用 onActivityResult 将数据从一个应用程序传递到另一个应用程序

转载 作者:太空狗 更新时间:2023-10-29 13:15:35 25 4
gpt4 key购买 nike

我正在尝试使用 onActivityResult 将数据从一个应用程序传递到另一个应用程序。将数据从“A”传递到“B”是可以的。但是当我尝试将字符串从 B 返回到 A 时,data.getExtras() 总是返回 null ...提前致谢

我的代码:

在应用 A 中:

public void initAppB(Context context, String packageName, String codCli){
Intent intent = context.getPackageManager().getLaunchIntentForPackage(packageName);
if (intent == null) {
intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("market://details?id=" + packageName));
}
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra("codCli",codCli);
startActivityForResult(intent, 123456);
}

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
String reg = "";
if(requestCode == 123456) {
if(resultCode == -1) {
try{
Bundle MBuddle = data.getExtras(); // >> ALWAYS RETURN NULL <<
reg = MBuddle.getString("retorno");
}catch(Exception e){
log("Error: " + e.getMessage());
}
CommitSale(reg);
} else {
// error
}
}
}

在应用程序 B 中:

....
//It's OK!! Receiving data!
Bundle extras = getIntent().getExtras();
if (extras != null) {
codCli = extras.getString("codCli");
}

....

OnClickListener mBackListener = new OnClickListener() {
public void onClick(View v) {
String registro = "010000";
Intent intent = getIntent();
intent.putExtra("retorno",registro);
setResult(-1, intent); // --> Forcing returning code -1 (Ok)
finish();
}
};

最佳答案

试试这个:在 B 中:

Intent intent = getIntent();
intent.putExtra("Date",dateSelected);
setResult(RESULT_OK, intent);
finish();

并且,在 A 中:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(resultCode==RESULT_OK && requestCode==1) {
Bundle mBundle = data.getExtras();
String mMessage = mBundle.getString("Date");
}
}

关于android - 使用 onActivityResult 将数据从一个应用程序传递到另一个应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35043489/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com