2014-06-21 8 views
8

Dopo aver installato un'app per Android, è possibile modificare dinamicamente l'icona e il nome dell'app (in fase di esecuzione) quando si preme un pulsante nell'app?Come modificare il nome dell'applicazione e l'icona di Android durante il runtime?

Questo è il codice finora ..,

getPackageManager().setComponentEnabledSetting(

new ComponentName("com.example.badgemaste", "com.example.badgemaste.MainActivity"), 

       PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP); 


      try { 
getPackageManager().setComponentEnabledSetting(
          new ComponentName("com.example.badgemaste", "com.example.badgemaste.MainActivity-One"), 
               PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); 
          } catch (Exception e) { 
           //handle 
          } 

E nel file manifesto ...

<application 
     android:allowBackup="false" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name2" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name="com.example.badgemaste.MainActivity" 
      android:label="@string/app_name" 
      android:launchMode="singleTask"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

     <activity-alias 
      android:icon="@drawable/ic_laun" 
      android:label="@string/app_name" 
      android:name="com.example.badgemaste.MainActivity-One" 
      android:enabled="true" 
      android:targetActivity="com.example.badgemaste.MainActivity"> 

      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity-alias> 



    </application> 

Quando ho eseguito questo codice, apparirà inizialmente prima icona (in cassetto e anche nella barra delle azioni) e poi dopo aver chiuso l'app e rieseguirla, passerà all'altra icona.

Quello che voglio fare è assegnare questa procedura a un pulsante, cioè se premo solo quel pulsante, l'icona cambierà, altrimenti no. Come posso raggiungere questo?

risposta

3

Ora che è possibile modificare l'attività utilizzando PackageManager, basta creare un pulsante e inserire il codice in esso è OnClick.

Se funziona, così dovrebbe.

+0

https://stackoverflow.com/questions/17146728/how-to-change-app-icon-dynamically-in-android?answertab=active#tab-top –