问题描述
- 如何修改在TabActivity里一个Tab的标题
- 我在 TabActivity 底部设置了 tabs,由下面的几个不同的 activity 组成
public class HomeScreen extends TabActivity {private TabHost mTabHost;@Overridepublic 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);
问题是对于每一个tab都有同样的窗口标题。窗口标题显示的是应用程序的名字,我想要把窗口标题名字换成tab的名字。我试着通过调用相应的onCreate()方法里面的
setTitle(""MyTitle"")
;这个方法来实现,并且重写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); }
但是结果不是这样的,它在 Tab 图标下面给 Tab 设置了 text。
请大家帮忙指点。
解决方案
试一下这段代码:
tabHost.setOnTabChangedListener(new OnTabChangeListener() { @Override public void onTabChanged(String tabId) { Log.i(""Tab id"""+tabId); setTitle(tabId); } });
解决方案二:
setIndicator (CharSequence label Drawable icon).
使用这个函数和标签将显示为一个标题。
时间: 2024-10-27 17:33:41