Как изменить заголовок и значок панели задач Android

Я пытаюсь сделать что-то на ActionBar в Android.

Я уже добавил новые элементы в правой части панели действий.

Как изменить левую часть панели действий? Я хочу изменить значок и текст, и я хочу добавить кнопку "Назад" в панели действий для других экранов

Android Action Bar

Ответ 1

Это очень просто сделать

Если вы хотите изменить его в коде, вызовите:

setTitle("My new title");
getActionBar().setIcon(R.drawable.my_icon);

И установите значения, которые вам нравятся.

Или в XML файле манифеста Android:

<activity android:name=".MyActivity" 
       android:icon="@drawable/my_icon" 
       android:label="My new title" />  

Чтобы включить кнопку "Назад" в вашем приложении, используйте:

 getActionBar().setHomeButtonEnabled(true);
 getActionBar().setDisplayHomeAsUpEnabled(true);

Код должен быть помещен в ваш onCreate так, чтобы изменение метки/значка было прозрачным для пользователя, но на самом деле его можно назвать где угодно во время жизненного цикла деятельности.

Ответ 2

Чтобы сделать один значок доступным для всех ваших баров действий, вы можете сделать это в своем манифесте Android.

<application
    android:logo="@drawable/Image">

    ...

</application>

Ответ 3

Если вы хотите изменить заголовок панели действий, просто укажите следующий 1 строковый код в onCreate() вашей активности

getActionBar().setTitle("Test");

Ответ 4

Вы можете изменить значок в своем файле, добавив любой значок, который вы хотите в соответствующие доступные папки, а затем измените эту строку в файле AndroidManifest.xml:

android:icon="@drawable/ic_launcher"

чтобы соответствовать любому имени вашего значка. Или поставьте свой значок как ic_launcher, если они - тот же самый значок. Что касается того, что он говорит, добавьте или измените любые строки, соответствующие указанному в файле res/values ​​/strings.xml. Затем, снова в вашем файле AndroidManifest.xml, измените эту строку:

android:label="@string/app_name"

независимо от того, какая строка у вас есть. Вам нужно будет сделать это для приложения в целом, и в зависимости от того, что вы хотите, но строки одинаковы.

Надеюсь, что это поможет.

Ответ 5

Вам просто нужно добавить эти 3 строки кода. Замените значок своим собственным значком. Если вы хотите сгенерировать значки, используйте this

getSupportActionBar().setHomeAsUpIndicator(R.drawable.icon_back_arrow);
getActionBar().setHomeButtonEnabled(true);
getActionBar().setDisplayHomeAsUpEnabled(true);

Ответ 6

Для этого вы можете сделать это двумя способами: XML или Java. Смотрите здесь: Как изменить текст на панели действий

Итак:

XML:

<activity android:name=".Hello_World"
              android:label="This is the Hello World Application">
</activity>

Java:

public class TitleBar extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);

       final boolean customTitleSupported = requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);

       setContentView(R.layout.main);


       if ( customTitleSupported ) {
           getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.titlebar);
           }

       final TextView myTitleText = (TextView) findViewById(R.id.myTitle);
       if ( myTitleText != null ) {
           myTitleText.setText("NEW TITLE");

           // user can also set color using "Color" and then "Color value constant"
          // myTitleText.setBackgroundColor(Color.GREEN);
       }
 }
}

Ответ 7

Для набора Title: getActionBar(). setTitle ( "Title" );

Значок set: getActionBar(). setIcon (R.drawable.YOUR_ICON_NAME);

Ответ 8

В Android 5.0 руководство по дизайну материалов препятствует использованию значка в actionBar

чтобы включить его, добавьте следующий код

getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setLogo(R.mipmap.ic_launcher);
getSupportActionBar().setDisplayUseLogoEnabled(true);

кредит принадлежит автору этой статьи

Ответ 9

Я использовал следующий вызов внутри onNavigationItemSelected:

HomeActivity.this.setTitle(item.getTitle());

Ответ 10

Заголовок панели действий по умолчанию будет использовать метку текущей активности, но вы также можете установить ее программно с помощью ActionBar.setTitle().

Чтобы реализовать функцию "Назад" (точнее, "Вверх" ), о которой вы говорите, прочитайте раздел "Использование значка приложения для навигации" в Руководство разработчика по Action Bar.

Наконец, чтобы изменить значок, руководство также охватывает это. Короче говоря, панель действий отобразит изображение, представленное в android:icon в вашем манифесте application или activity, если оно есть. Типичная практика заключается в создании значка приложения (во всех различных плотностях, которые вам понадобятся) с именем ic_launcher.png, и поместите его в свои каталоги drawable-*.

Ответ 11

Я получил ошибку non-static method setTitle(CharSequence) cannot be referenced from a static context, потому что использовал setTitle() в статическом классе PlaceholderFragment. Я решил это, используя getActivity().getActionBar().setTitle("new title");