Java 如何在覆盖某个活动的同时启动该活动';什么方法?
我有两个类,它们都扩展了Java 如何在覆盖某个活动的同时启动该活动';什么方法?,java,android,android-activity,overriding,Java,Android,Android Activity,Overriding,我有两个类,它们都扩展了活动 MainActivity.java public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout activityLayout = new LinearLayout(t
活动
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);
}
}
Permissions.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
活动
,同时覆盖它的onpermissionseeded()
方法。然而,我尝试过的两种方法都不起作用
new Permissions() {
@Override
public void onPermissionRefused() {
Toast.makeText(getBaseContext(), "Refused", Toast.LENGTH_SHORT).show();
}
}.requestPermissions(this);
不传递覆盖并将该代码替换为:
startActivity(newintent(this,Permissions.class))代码>甚至不允许我重写该方法。我怎样才能做到这一点呢?你不能。活动必须在清单中声明,不能以这种方式声明匿名内部类(即使可以,它也不会有正确的构造函数,因为对父类的隐式引用)。如果需要,创建一个真正的子类,并通过intent传递任何必要的变量。步骤1。创建权限的子类
class MyPermissionsActivity extends Permissions {
@Override
public void onPermissionRefused() {
Toast.makeText(getBaseContext(), "Refused", Toast.LENGTH_SHORT).show();
}
}
第二步。在应用程序清单中声明该子类
第三步。开展以下活动:
Intent i = new Intent(context, MyPermissionsActivity.class);
currentActivity.startActivity(i);