2016-09-08 3 views
-1

Я хочу изменить название Actionbar на любой текст программно. Я использую AppCompat v7 Вот мой код:Как изменить название панели действий в библиотеке appcompat v7

LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View actionBarview = inflater.inflate(R.layout.action_bar, null); 

    ActionBar actioBar = getSupportActionBar(); 
    actioBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); 
    actioBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); 
    actioBar.setCustomView(actionBarview, new ActionBar.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); 
    final DrawerLayout drowerlayout = (DrawerLayout) findViewById(R.id.drawerlayout); 

Я пробовал: actioBar.setTitle ("MyText");

Но ничего не произошло.

Вот мой заказ ActionBar XML:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="48dp" 
    android:layout_gravity="right" 
    android:background="#bfbfbf" 
    android:gravity="right" 
    android:orientation="horizontal" > 

    <TextView 
     android:id="@+id/TextView01" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" android:layout_gravity="center" android:layout_weight="0.1"/> 

    <TextView 
     android:id="@+id/txtBName" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:layout_weight="1" 
     android:gravity="center" 
     android:text="......" 
     android:textColor="#000" /> 

    <TextView 
     android:id="@+id/textView2" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" android:layout_gravity="center" android:layout_weight="0.1"/> 

    <Button 
     android:id="@+id/btnMenu" 
     style="?android:attr/buttonStyleSmall" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:gravity="center" 
     android:text="menu" /> 

.

ответ

1

Поскольку вы настраиваете настраиваемое представление на панели настроек панели задач setTitle(), не нужно работать, вместо этого вам либо придется отказаться от пользовательского интерфейса, либо придерживаться стандартного представления панели задач или в вашем обычном виде должен быть TextView, который вы может получить ссылку и установить ее текст независимо от вашего названия.

Если установка customView требуется для вашего дела здесь, как вы будете идти об этом ...

View actionBarview = inflater.inflate(R.layout.action_bar, null); 
TextView tvTitle = (TextView) actionBarview.findViewById(R.id.tv_title) 
tvTitle.setText(<your title here>) 

запомнить tv_title должны быть в вашем пользовательские представления XML в качестве TextView виджета. позже в коде вы можете ссылаться на tvTitle для изменения вашей панели действий. Название

+0

спасибо, я обновил вопрос и добавил коды xml. Я устанавливаю идентификатор textview в txtBName, это то, что вы имеете в виду? – Alfi

+0

И отлично сработало! Спасибо! – Alfi

+1

в любое время bro, просто следите за стандартом Google при использовании пользовательских представлений для actionBar, также применяйте практику использования панелей инструментов вместо actionBar как последней замены для actionBar –

Смежные вопросы