【发布时间】:2010-08-20 08:38:33
【问题描述】:
我已经阅读了很多关于如何在使用选项卡时使用视图而不是 setContent 中的意图更轻量级的内容。
由于我将创建一个带有标签的应用程序,因此我试图实现这一点,而不是在 setContent 中包含意图。但是,我很难找到有关将当前视图与另一个视图交换的示例或简单教程。
假设我有 TAB_A,带有一些输入字段和一个按钮。当用户点击按钮时,TextView 将显示“你好,用户!”在同一个 TAB_A 中。当然,这是一个过于简单的例子,但它肯定会为我指明正确的方向。
编辑:我有一个名为 TAB_A 的选项卡,其中有一个按钮。如果用户单击该按钮,TAB_A 现在将显示“你好,用户!”而不是按钮。
这是我的 TabSpec 的示例。
TabHost.TabSpec spec = tabHost.newTabSpec(getString(R.string.tabspec_tag_search))
.setIndicator(getString(R.string.tabspec_indic_search),
res.getDrawable(R.drawable.tab_ic_search))
.setContent(new TabContentFactory() {
@Override
public View createTabContent(String tag) {
switch (doWhat){
case ACTIVITY_SPLASH_PAGE:
return showButton;
case ACTIVITY_HELLO:
return showHello;
}
return null;
}
});
tabHost.addTab(spec);
其中ShowButton 和ShowHello 都是扩展LinearLayout 的类。两者都在 onCreate 中初始化,如下所示:
ShowButton showButton = new ShowButton(this);
在 showButton 类中,我有这个监听器:
viewHolder.button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(context, Search247.class);
intent.putExtra(EXTRA_DO_WHAT, ACTIVITY_HELLO);
context.startActivity(intent);
}
});
当应用首次启动时,用户会看到视图 showButton。当用户单击按钮时,我希望选项卡将其内容更改为 showHello。
那么问题是:有没有什么方法可以在不使用startActivity 的情况下更新tabspec 的内容?
一如既往的感谢!
【问题讨论】:
-
也许只有我一个人,但不清楚你的问题或问题是什么。
-
我不知道你想要什么。一些创建标签屏幕的代码示例?我们对 Intent 问题的看法? TextView 的事情确实让我很困惑。
标签: android views tabs android-tabhost android-intent