[英]I don't understand startActivityForResult
我是编程新手,我需要学习学校的课程,但我遇到了一个问题,它不允许我在 android 工作室及其中上传图片
startActivityForResult
这是代码
imgProfile.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent photoIntent = new Intent(Intent.ACTION_PICK);
photoIntent.setType("Image/*");
//noinspection deprecation
startActivityForResult(photoIntent, 1);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1 && resultCode == RESULT_OK && data!=null ){
imagePath = data.getData();
getImageInImageView();
}
}
我试图查看 inte.net,但找不到任何解决方案,任何人都可以帮助我
需要注意的一些事项:
NullPointerException
; 或请求的存储位置只会在我们的 com.appd.app 的文件目录中创建一个同名目录,所有交互都将从该源完成。无论如何,当前从称为 Activity 获取输入的方法:
import androidx.activity.result.ActivityResult;
import androidx.activity.result.ActivityResultCallback;
import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
ActivityResultLauncher<Intent> activityForResultLauncher;
activityForResultLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>()
{
@Override
public void onActivityResult(ActivityResult result)
{
if(result.getResultCode() == RESULT_OK)
{
Intent data = result.getData();
// handle business...
}
}
});
ActivityResultLauncher<Intent> activityForResultLauncher; activityForResultLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result-> { if(result.getResultCode() == RESULT_OK) { intentData = result.getData(); // handle business... } });
activityForResultLauncher.launch(someIntent);
finish()
时,我会从调用的 Activity 返回RESULT_OK
。 然后我回到调用方Activity,我们可以继续在我们覆盖的onActivityResult
方法部分继续。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.