【发布时间】:2021-09-26 02:35:22
【问题描述】:
我正在使用 ArthurHub 的库来裁剪图像并将其放入 ImageButton 或 ImageView。 裁剪活动顺利启动,但在我单击裁剪按钮进行裁剪后,我的应用程序重新运行并打开 MainActivity。 在我看来,代码中没有错误,我也检查了 5-6 次。
谢谢!!!
这是我的代码...
public class AddActivity extends AppCompatActivity {
private ImageButton add_image_button;
private Uri imageUri;
private String imageUrl;
private String recordPermission = Manifest.permission.RECORD_AUDIO;
private String readExternalStorage = Manifest.permission.READ_EXTERNAL_STORAGE;
private String recordFile;
private int PERMISSION_CODE = 7;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add);
add_image_button = findViewById(R.id.add_image_button);
CropImage.activity(imageUri).start(AddActivity.this);
add_image_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
checkReadExternalStoragePermissions();
CropImage.activity(imageUri).start(AddActivity.this);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE && resultCode == RESULT_OK) {
CropImage.ActivityResult result = CropImage.getActivityResult(data);
imageUri = result.getUri();
add_audio_button.setImageURI(imageUri);
}else {
Toast.makeText(this, "Try again...", Toast.LENGTH_SHORT).show();
startActivity(new Intent(AddActivity.this, MainActivity.class));
finish();
}
}
private boolean checkRecordPermissions() {
if (ActivityCompat.checkSelfPermission(this, recordPermission) == PackageManager.PERMISSION_GRANTED) {
return true;
} else {
ActivityCompat.requestPermissions(this, new String[]{recordPermission}, PERMISSION_CODE);
return false;
}
}
private boolean checkReadExternalStoragePermissions() {
if (ActivityCompat.checkSelfPermission(this, readExternalStorage) == PackageManager.PERMISSION_GRANTED) {
return true;
} else {
ActivityCompat.requestPermissions(this, new String[]{readExternalStorage}, PERMISSION_CODE);
return false;
}
}
}
【问题讨论】:
-
如果activity崩溃了,肯定是报错了,只是android studio的logcat没有显示,我遇到过,可以使用终端输入adb logcat查看。其次,如果它没有崩溃,它可能会在onActivityResult中返回结果,您是否尝试过记录它是否被调用?
-
@Lalit Fauzdar 你的第二个案例适合我的问题,但我不明白你在说什么,你能解释一下吗?
-
当你按下裁剪按钮并且它返回到之前的活动而不崩溃意味着它正确返回数据,你不能正确解析/访问它,所以在你的函数中记录结果@ 987654322@,看看它是否真的返回数据。
标签: java android xml firebase crop