2013-11-09 1 views
1

내 애플리케이션에 스위치가 있습니다. 스위치가 on 인 경우 하나의 다른 아이콘을 설정하고 싶습니다. 스위치가 off 인 경우 다른 아이콘을 설정해야합니다.안드로이드에서 전환 값에 따라 애플리케이션 아이콘을 변경하는 방법

나는이

tButton.setOnCheckedChangeListener(new OnCheckedChangeListener() 
    { 

     @Override 
     public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) 
     { 

      if (isChecked) 
      { 
       tvStateofToggleButton.setText("ON"); 
      getPackageManager().setComponentEnabledSetting(
         new ComponentName("com.samir", "com.samir.MainActivity-Red"), 
          PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP); 
      } else 
      { 
       tvStateofToggleButton.setText("OFF"); 
       getPackageManager().setComponentEnabledSetting(
        new ComponentName("com.samir", "com.samir.MainActivity-Blue"), 
          PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP); 
      } 

     } 
    }); 

매니페스트 같은 노력하고는

 [2013-11-09 13:03:40 - Android Switch Button] ActivityManager: Error type 3 
     [2013-11-09 13:03:40 - Android Switch Button] ActivityManager: Error: Activity class {com.samir/com.samir.MainActivity-Red} does not exist. 

이 하나가 나에게 올바른 접근 방식을 제안 할 수 콘솔은 다음과 같이 표시

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.samir" 
android:versionCode="1" 
android:versionName="1.0" > 

<uses-sdk android:minSdkVersion="8" /> 

<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" > 
    <activity 
     android:name=".MainActivity" 
     android:label="@string/app_name" 
     android:launchMode="singleTask" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
     </intent-filter> 
    </activity> 

    <activity-alias 
     android:name=".MainActivity-Red" 
     android:enabled="false" 
     android:icon="@drawable/red" 
     android:label="@string/app_name" 
     android:targetActivity=".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=".MainActivity-Blue" 
     android:enabled="false" 
     android:icon="@drawable/blue" 
     android:label="@string/app_name" 
     android:targetActivity=".MainActivity" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

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

</manifest> 

입니다

+0

홈 페이지에 표시되는대로 앱 아이콘을 변경하려고합니까? –

+0

@GilMoshayof 예 그렇게하려고합니다. – Gajini

답변

1

당신에게 ~ 할 수 없다. 설치 후 앱 아이콘을 변경하십시오. 대신 위젯을 만들고 사용자에게 홈 화면에 배치 한 다음 이미지를 변경하도록 요청할 수 있습니다. 당신의 오류에 대해서는

com.samir.MainActivity-Red 그래서 모두 별명을 사용할 수 없기 때문에 내 생각, 안드로이드가 활동을 시작하는 찾을 수없는 것 같다 com.samir.MainActivity

0

사용해보십시오, com.samir.MainActivity에 대한 별칭입니다. AndroidManifest.xml에서 android:enabled="false"을 삭제 해보세요.

0

체인 파이어 SuperSU 안내서에서. 그가 한 것은 그가 활동 별칭 중 하나와 기본값으로 설정된 값 중 하나 인 android:enabled=true을 기본값으로 설정 한 것입니다.

관련 문제