我的应用程序中有一个活动,我一直保留为
android:enabled="false"
现在我希望当一个按钮被点击时它应该得到改变
android:enabled="true"
我怎样才能做到这一点?
我的应用程序中有一个活动,我一直保留为
android:enabled="false"
现在我希望当一个按钮被点击时它应该得到改变
android:enabled="true"
我怎样才能做到这一点?
这是一个如何启用/禁用 Activity 的示例:
PackageManager pm = getPackageManager();
pm.setComponentEnabledSetting(new ComponentName(this, com.packagename.MyActivity.class),
PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
pm.setComponentEnabledSetting(new ComponentName(this, com.packagename.MyActivity.class),
PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
这是一个很好的方法:
public static void setActivityEnabled(Context context,final Class<? extends Activity> activityClass,final boolean enable)
{
final PackageManager pm=context.getPackageManager();
final int enableFlag=enable ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED : PackageManager.COMPONENT_ENABLED_STATE_DISABLED;
pm.setComponentEnabledSetting(new ComponentName(context,activityClass),enableFlag,PackageManager.DONT_KILL_APP);
}
示例用法:
setActivityEnabled(this,SomeActivity.class,false);
使用PackageManager
和setComponentEnabledSetting()
启用或禁用应用程序中的任何组件:活动、服务等。
如果您使用的是 productFlavors,则可以为每种口味拥有单独的 AndroidManifest 文件。在这些中,您可以轻松地覆盖主清单文件中的属性。在构建特定风味清单时,合并会根据所选风味合并清单。
在您想要禁用特定活动的风味清单中,您可以这样做
<activity
android:name="com.facebook.CustomTabActivity"
android:enabled="false"
tools:node="remove">
</activity>