在使用标签时,我一直在阅读很多关于如何使用视图而不是setContent
中的意图的评论。
由于我将使用标签创建应用,因此我尝试实现此功能,而不是在setContent
内进行意图。但是,我很难找到关于用另一个交换当前视图的示例或简单的教程。
说我有TAB_A,有一些输入字段和一个按钮。当用户点击按钮时, TextView
将显示“Hello,user!”在同一个TAB_A中。当然这是一个过于简单的例子,但它肯定会指出我正确的方向。
编辑:我有一个名为TAB_A的标签,里面有一个按钮。如果用户点击该按钮,TAB_A现在将显示“Hello,user!”而不是按钮。
以下是我的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的内容?
一如既往地谢谢!
答案 0 :(得分:1)
找到答案:
ViewGroup viewGroup = (ViewGroup) mView.getParent();
viewGroup.removeView(mView);
addView(showResults);
其中mView
是标签中的初始视图。现在只想弄清楚当从新视图中按下BACK时如何让应用记住显示mView
。