假设Class A有一些静态参数:
public Class A {
public static final String KEY_1="key1"
public static final String KEY_2="key2"
...
}
Run Code Online (Sandbox Code Playgroud)
静态参数在项目中重复使用.重构时,我想将它们移到另一个类,比如说Class B; 但这样做我必须更新他们的每一个使用案例,如A.KEY_1以B.KEY_2手动.
有没有办法在Android Studio或IntelliJ中自动执行此操作?我已经尝试过的是选择包含参数的行并按F6打开一个重构对话框,但是通过它不会让我得到我想要的.
为了处理android M +中的权限,我想编写一个单独的类,即PermissionHandler类,来处理所有与权限相关的工作,这样我就可以轻松地在任何项目中使用相同的类,而无需通过仅调用它来更改调用活动.构造函数:
new PermissionHandler(CallingActivity.this, Manifest.permission.READ_EXTERNAL_STORAGE, new PermissionHandler.PermissionGranted() {
@Override
public void onPermissionGranted() {
doWhatever();
}
});
Run Code Online (Sandbox Code Playgroud)
我的PermissionHandler是:
public class PermissionHandler implements ActivityCompat.OnRequestPermissionsResultCallback{
.
.
.
public PermissionHandler(AppCompatActivity callingActivity, String permission, PermissionGranted permissionGranted) {
this.permission = permission;
this.permissionGranted = permissionGranted;
this.callingActivity= callingActivity;
askForPermission();
}
private void askForPermission() {
if (ContextCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED) {
if (ActivityCompat.shouldShowRequestPermissionRationale(activity, permission)) {
showAlertDialog();
} else {
ActivityCompat.requestPermissions(callingActivity,permissionsArray, PERMISSION_REQUEST);
}
} else {
permissionGranted.onPermissionGranted();
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull …Run Code Online (Sandbox Code Playgroud)