[英]Change content of tab on button click
我一直在阅读很多有关使用选项卡时使用视图而不是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的内容?
一如既往的感谢!
找到了答案:
ViewGroup viewGroup = (ViewGroup) mView.getParent();
viewGroup.removeView(mView);
addView(showResults);
其中mView
是选项卡中的初始视图。 现在,只想弄清楚如何使应用程序记住mView
视图中按BACK时显示mView
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.