2015-04-15 51 views
-1

根据我的设置活动 中的选择,我将更改应用程序的图标和标签,具体取决于图标和标签将会更改的选项。当我选择Android:更改启动器图标和标签

而且 应用程序图标和标签从我的其他活动

这里结转我制定活动 但我的应用程序停止是我的清单:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.smb.app.galaxyv2" 
android:versionCode="1" 
android:versionName="1.0" > 


<uses-sdk 
    android:minSdkVersion="11" 
    android:targetSdkVersion="17" /> 

<uses-permission android:name="android.permission.INSTALL_PACKAGES" /> 
<uses-permission android:name="android.permission.INTERNET"/> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> 

<application 
    android:allowBackup="true" 
    android:theme="@style/AppTheme" > 

    <activity 
     android:name=".MainActivity" 
     android:label="@string/app_name" 
     android:configChanges="orientation" 
     android:launchMode="singleTask" 
     android:screenOrientation="landscape"> 

    </activity> 
    <activity-alias 
    android:name="com.smb.app.galaxyv2.MainActivity-lip" 
    android:icon="@drawable/lip_icon" 
    android:label="LIP" 
    android:enabled="true" 
    android:targetActivity="com.smb.app.galaxyv2.MainActivity"> 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN"/> 
     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
    </activity-alias> 
    <activity-alias 
     android:name="com.smb.app.galaxyv2.MainActivity-certus" 
     android:icon="@drawable/certus_icon" 
     android:label="Certus" 
     android:enabled="true" 
     android:targetActivity="com.smb.app.galaxyv2.MainActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN"/> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity-alias> 

    <activity android:name="com.smb.app.galaxyv2.SettingActivity" /> 
    <activity android:name="com.smb.app.galaxyv2.UpdateActivity"/> 
</application> 

这里是我应该改变活动别名的功能:

chooseBrand.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { 
     @Override 
     public boolean onPreferenceChange(Preference preference, Object newValue) { 
      if (((String) newValue).equalsIgnoreCase("bc_lip")){ 
       getPackageManager().setComponentEnabledSetting(
         new ComponentName("com.smb.app.galaxyv2.MainActivity", "com.smb.app.galaxyv2.MainActivity-lip"), 
         PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP); 
      }else if (((String) newValue).equalsIgnoreCase("bc_certus")){ 
       getPackageManager().setComponentEnabledSetting(
         new ComponentName("com.smb.app.galaxyv2.MainActivity", "com.smb.app.galaxyv2.MainActivity-certus"), 
         PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP); 
      } 
      return false; 
     } 
    }); 

回答