我正在从片段中开始一个新的活动
startActivityForResult(intent, 1);
Run Code Online (Sandbox Code Playgroud)
并希望在Fragment的父Activity中处理结果:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.d(TAG, "onActivityResult, requestCode: " + requestCode + ", resultCode: " + resultCode);
if (requestCode == 1) {
// bla bla bla
}
}
Run Code Online (Sandbox Code Playgroud)
问题是我从来没有得到requestCode我刚刚发布的内容startActivityForResult().
我有一个类似的东西0x40001,0x20001有一个随机的高位设置.文档没有说明这一点.有任何想法吗?
我有一个Location可以从许多活动中调用的活动,例如Sign up和Order.在Location活动中,用户输入他的位置,因此活动Location会将此新位置返回到调用它的活动.
因此,当Sign up活动调用Location活动时,它必须将数据返回到Sign up活动.另一次Order活动将做同样的事情.
我知道你会告诉我我应该发布代码,但我不是要你给我代码; 我只想要一些提示,链接或好线程.
onActivityResult()没有被召唤.以下是我的代码:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// Check which request we're responding to
Log.e("CALLED", "OnActivity Result");
if (requestCode == TEAM_SELECTED_REQUEST_CODE) {
// Make sure the request was successful
if (resultCode == RESULT_OK) {
try {
mySelectedTeam = getIntent().getStringExtra("teamName");
txtSelectTeamCreateMatch.setText(mySelectedTeam);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我开始的SelectTeamActivity:
Intent intent=new Intent(CreateMatch.this,SelectTeamActivity.class);
startActivityForResult(intent, TEAM_SELECTED_REQUEST_CODE);
//overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
overridePendingTransition(R.anim.push_up_in, R.anim.push_up_out);
Intent intent = getIntent();
intent.putExtra("teamID", teamDataList.get(position).getTeamId().toString());
intent.putExtra("teamName", teamDataList.get(position).getTeamName().toString());
setResult(1, intent);
Run Code Online (Sandbox Code Playgroud) 我有一个Activity调用另一个Activity,调用其他一些Activities.我发送到最后Activity得到一个结果,然后我把结果发回拳头Activity.
流程是这样的
A -> B -> C -> D -> C -> B -> A
Run Code Online (Sandbox Code Playgroud)
从流动A到D由startActivityForResult和从流动D到A由onActivityResult.
从D到B的requestCode始终是相同的(一个我决定),而是来自B于A它突然从我的值更改为随机值(在这种特殊情况下196614).
这是我用来调用activity Bfrom 的代码activity A:
filterByCatalogue.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getActivity(), CatalogueContainerActivity.class);
startActivityForResult(intent, Defines.FILTER_BY_CATALOGUE);
}
});
Run Code Online (Sandbox Code Playgroud)
(以filterByCataloguea为FrameLayout …
我有一个主要活动,它作为根据条件调用不同活动的入口点。其中,我使用 Firebase Auth 来管理用户登录:
startActivityForResult(
AuthUI.getInstance().createSignInIntentBuilder()
.setAvailableProviders(providers)
.build(),
RC_SIGN_IN)
Run Code Online (Sandbox Code Playgroud)
我覆盖onActivityResult()以区分返回的意图/数据,例如:
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
when (requestCode) {
REQUEST_CODE_1 -> {
// update UI and stuff
}
RC_SIGN_IN -> {
// check Firebase log in
}
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
使用文档强烈推荐的 Activity Result APIs ,我知道我应该在启动prepareCall()之前创建ActivityResultLauncher并确保活动在启动时处于创建状态,但我仍然不明白如何优雅地处理多个活动结果(在至少,在一个地方)就像在onActivityResult().
看这篇文章,似乎我需要实现多个ActivityResultContract类型的子内部类(因此是多个prepareCall()?),因为它们应该是不同的合同,我说得对吗?有人可以向我展示一些反映上述onActivityResult()逻辑的骨架示例吗?
我的要求是将摄像头捕获的图像上传到服务器,但它应该小于500 KB.如果它大于500 KB,则需要将其减小到小于500 KB的大小(但稍微接近它)
为此,我使用以下代码 -
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
try {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == getActivity().RESULT_OK) {
if (requestCode == REQUEST_CODE_CAMERA) {
try {
photo = MediaStore.Images.Media.getBitmap(
ctx.getContentResolver(), capturedImageUri);
String selectedImagePath = getRealPathFromURI(capturedImageUri);
img_file = new File(selectedImagePath);
Log.d("img_file_size", "file size in KBs (initially): " + (img_file.length()/1000));
if(CommonUtilities.isImageFileSizeGreaterThan500KB(img_file)) {
photo = CommonUtilities.getResizedBitmapLessThan500KB(photo, 500);
}
photo = CommonUtilities.getCorrectBitmap(photo, selectedImagePath);
// // CALL THIS METHOD TO GET THE URI FROM THE BITMAP
img_file …Run Code Online (Sandbox Code Playgroud) android image filesize android-camera-intent onactivityresult
我正在开发一个图像编辑Android应用程序.在我的一个活动中,我打算从onCreate中的图库中选择一个图像,如下所示:
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_IMAGE);
Run Code Online (Sandbox Code Playgroud)
然后我收到这样的数据:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
Crashlytics.log("onActivityResult called");
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PICK_IMAGE && resultCode == Activity.RESULT_OK && data != null) {
Crashlytics.log("Data received from image pick intent");
imageUri = data.getData();
loadImage();
} else {
//if we do not select a picture, go back to the dashboard
Crashlytics.log("Data not received");
onBackPressed();
Log.d(TAG, "no picture selected");
}
}
Run Code Online (Sandbox Code Playgroud)
该loadImage方法:
private …Run Code Online (Sandbox Code Playgroud) java android nullpointerexception android-intent onactivityresult
我正在创建一个应用程序,我需要找到用户的当前位置.
所以在这里我想做一个任务,比如当用户从那个系统意图返回时,我的任务应该在那之后完成.(显示用户当前位置)
所以我打算用OnActivityResult().
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
}
Run Code Online (Sandbox Code Playgroud)
但问题是我不知道如何在不扩展Activity的类中使用该方法.
请有人告诉我如何实现这一目标?
我想知道是否有可能在onActivityResult()Fragment中使用,如果是,那么它是如何工作的,请举例说明.