2015-09-29 2 views
1

Я хотел бы иметь разные значки и названия в различных действиях, но не изменять имя или значок приложения. Первое действие не должно иметь названия.Как изменить название и значок активности запуска и сохранить имя и значок приложения?

Это то, что я имею в AndroidManifest.xml:

<application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:screenOrientation="portrait" 
      android:name="" <!-- there should be no title here --> 
      android:icon="@drawable/custom_icon" 
      android:windowSoftInputMode="stateHidden|adjustResize" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:screenOrientation="portrait" 
      android:name=".MainActivity" 
      android:icon="@drawable/another_custom_icon" 
      android:label="MainTitle" > 
     </activity> 
</application> 

Видимо Android использует имя и значок первого действия для имени приложения и значок. Я знаю, что я могу поставить эту строку кода в onCreate деятельности:

getActionBar().setTitle(""); 

Но он также показал во время загрузки, пока он не получает удалены.

Это styles.xml файл:

<style name="AppTheme" parent="@android:style/Theme.Holo.Light"> 
    <item name="android:actionBarStyle">@style/actionBarCustomization</item> 
</style> 

<style name="actionBarCustomization" parent="@android:style/Widget.Holo.Light.ActionBar"> 
    <item name="android:background">#FFFFFF</item> 
    <item name="android:titleTextStyle">@style/actionBarTextColor</item> 
</style> 

<style name="actionBarTextColor" parent="@android:style/TextAppearance"> 
    <item name="android:textColor">#000000</item> 
</style> 
+0

я у мыслительной активности не должно быть значка, потому что значок предназначен для представления полного приложения. И имя для пути класса активности, если вы не даете этого, тогда как манифест будет знать, какой класс является активностью. – warlock

+0

взгляните на мой ответ и отметили его как правильное, если оно вам помогло. – waleedsarwar86

ответ

3

AndroidManifest.xml

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:screenOrientation="portrait" 
     <!-- This the name on Activity so put there the name of your MainActivity i.e com.example.MainActivity --> 
     android:name="NAME OF YOU LAUNCHER ACTIVITY"  
     android:icon="@drawable/custom_icon" 
     android:theme="@style/Theme.NoActionBarTitle" 
     android:windowSoftInputMode="stateHidden|adjustResize" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:screenOrientation="portrait" 
     android:name=".MainActivity" 
     android:icon="@drawable/another_custom_icon" 
     android:label="MainTitle" > 
    </activity> 

Style.xml

<style name="AppTheme" parent="@android:style/Theme.Holo.Light"> 
    </style> 
<style name="Theme.NoActionBarTitle" parent="@android:style/Theme.Holo.Light"> 
    <item name="android:actionBarStyle">@style/NoActionBarTitle.ActionBar</item> 
</style> 

<style name="NoActionBarTitle.ActionBar" parent="@android:style/Widget.Holo.Light.ActionBar"> 
    <<item name="android:displayOptions">showHome|useLogo</item> 
</style> 

После этого вы можете показать название деятельности, если хотите использовать метод.

getActionBar().setDisplayShowTitleEnabled(true); 

Для тех, кто использует AppCompat поддержки library.I означает, что виды спорта расширяют от AppCompatActivity использовать файл ниже стиль

Style.xml если вы используете AppCompat

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <!-- Customize your theme here. --> 
</style> 

<style name="Theme.NoActionBarTitle" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <item name="actionBarStyle">@style/NoActionBarTitle.ActionBar</item> 
    <item name="android:actionBarStyle">@style/NoActionBarTitle.ActionBar</item> 
</style> 

<style name="NoActionBarTitle.ActionBar" parent="Widget.AppCompat.Light.ActionBar.Solid.Inverse"> 
    <item name="android:displayOptions">showHome|useLogo</item> 
    <item name="displayOptions">showHome|useLogo</item> 
</style> 
+0

Проблема в том, что когда метка пуста, имя приложения не отображается. – Apostrofix

+0

@Apostrofix Извините, теперь я понимаю, что ваша проблема возникла из-за того, что имя приложения из пусковой установки также удалено. Я редактировал свой код, и я надеюсь, что это поможет. – waleedsarwar86

+0

@Apostrofix Я обновил свой ответ, пожалуйста, проверьте его, дайте мне знать, если это поможет. – waleedsarwar86