Как изменить заголовок вкладки в TabActivity - PullRequest
0 голосов
/ 28 сентября 2011

У меня есть TabActivity с вкладками внизу , которая состоит из нескольких различных действий, подобных этому:

public class HomeScreen extends TabActivity {
private TabHost mTabHost;
@Override
public void onCreate(Bundle icicle) {
    super.onCreate(icicle);

    try{
    setContentView(R.layout.hometabs);


    Resources res = getResources(); // Resource object to get Drawables
    mTabHost = getTabHost();  // The activity TabHost
    TabHost.TabSpec spec;  // Reusable TabSpec for each tab
    Intent intent;  // Reusable Intent for each tab
    String strName;
    // Create an Intent to launch an Activity for the tab (to be reused)
    strName=Central.Res.getString(R.string.tab_Books);
    intent = new Intent().setClass(this, BookList.class);
    spec = mTabHost.newTabSpec(strName).setIndicator("",
                      res.getDrawable(R.drawable.ic_menu_database))
                  .setContent(intent);
    mTabHost.addTab(spec);


    // Create an Intent to launch an Activity for the tab (to be reused)
    strName=Central.Res.getString(R.string.tab_Questions);
    intent = new Intent().setClass(this, QuestionsList.class);
    intent.putExtra("NoteType",  UserDataSQLHelper.NOTE_TYPE_QUEST );
    spec = mTabHost.newTabSpec(strName).setIndicator("",
                      res.getDrawable(R.drawable.ic_menu_dialog))
                  .setContent(intent);
    mTabHost.addTab(spec);

Моя проблема в том, что у меня одинаковый заголовок окна для каждой вкладки.Для этого заголовка окна задано имя приложения.

Мне нужно иметь возможность изменить этот заголовок на имя вкладки.

Я пытаюсь сделать это, вызвав setTitle ("MyTitle");в onCreate () соответствующего действия и путем переопределения TabActivity onChildTitleChanged:

        public void onChildTitleChanged(Activity childActivity, CharSequence title)
        {
             View tabView = mTabHost.getCurrentTabView();
             int idTitle = android.R.id.title;
             TextView tvTitle = (TextView) tabView.findViewById(idTitle);
             tvTitle.setText(title);
        }

Но результат, который я получаю, не тот, который мне нужен - он устанавливает текст для вкладки под значком вкладки.

Не могли бы вы мне помочь?

Ответы [ 2 ]

6 голосов
/ 28 сентября 2011

попробуйте следующий код,

tabHost.setOnTabChangedListener(new OnTabChangeListener() {         
            @Override
            public void onTabChanged(String tabId) {                
                Log.i("Tab id", ""+tabId);
                setTitle(tabId);
            }
        });     
0 голосов
/ 04 декабря 2011

setIndicator (CharSequence label, Drawable icon).
Используйте эту функцию, и метка будет отображаться в виде заголовка.

...