我有两个类,它们都扩展了 Activity
。
MainActivity.java
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout activityLayout = new LinearLayout(this);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT);
activityLayout.setLayoutParams(lp);
activityLayout.setOrientation(LinearLayout.VERTICAL);
activityLayout.setPadding(16, 16, 16, 16);
activityLayout.addView(new Button(this));
setContentView(activityLayout);
new Permissions() {
@Override
public void onPermissionRefused() {
Toast.makeText(getBaseContext(), "Refused", Toast.LENGTH_SHORT).show();
}
}.requestPermissions(this);
}
}
权限.java
public class Permissions extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
setTheme(R.style.AppTheme_Dialog); // Custom theme to make Activity like a Dialog
super.onCreate(savedInstanceState);
onPermissionRefused();
}
public void requestPermissions(Activity activity, String... permissions) {
startActivity(new Intent(activity, Permissions.class));
}
public void onPermissionRefused() {
}
}
我想要做的是启动Permissions
Activity
,同时覆盖它的onPermissionRefused()
方法。然而,我尝试过的两种方法都不起作用。
new Permissions() {
@Override
public void onPermissionRefused() {
Toast.makeText(getBaseContext(), "Refused", Toast.LENGTH_SHORT).show();
}
}.requestPermissions(this);
不传递覆盖并用以下代码交换该代码: startActivity(new Intent(this, Permissions.class));
甚至不允许我覆盖该方法。我怎样才能实现这个目标?
最佳答案
第1步.创建Permissions的子类
class MyPermissionsActivity extends Permissions {
@Override
public void onPermissionRefused() {
Toast.makeText(getBaseContext(), "Refused", Toast.LENGTH_SHORT).show();
}
}
第 2 步:在应用程序 list 中声明该子类
第 3 步:按如下方式启动 Activity :
Intent i = new Intent(context, MyPermissionsActivity.class);
currentActivity.startActivity(i);
关于java - 如何在重写 Activity 的方法之一的同时启动 Activity?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46127076/