Android 在TabHost中重新加载选项卡内容
我有一个带有两个选项卡的选项卡视图,在我的TabActivity中有一个按钮。单击按钮时,我希望将数据发送到当前选项卡,并将数据显示到当前选项卡。当我处理这些数据时,数据是可用的,但当我将这些数据设置为textview时,我的textview没有改变。如何从tabhost活动刷新选项卡内容?(抱歉我的英语不好:P)这是我的代码:Android 在TabHost中重新加载选项卡内容,android,android-tabhost,reload,Android,Android Tabhost,Reload,我有一个带有两个选项卡的选项卡视图,在我的TabActivity中有一个按钮。单击按钮时,我希望将数据发送到当前选项卡,并将数据显示到当前选项卡。当我处理这些数据时,数据是可用的,但当我将这些数据设置为textview时,我的textview没有改变。如何从tabhost活动刷新选项卡内容?(抱歉我的英语不好:P)这是我的代码: public class MainActivity extends TabActivity { TabHost tabHost; @Override public
public class MainActivity extends TabActivity {
TabHost tabHost;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tabHost = getTabHost();
Bundle b = new Bundle();
b.putInt("category_id", 10);
Intent tab1Intent = new Intent(this, Tab1Activity.class).putExtras(b);
TabSpec tab1Spec = tabHost
.newTabSpec("Tab1")
.setIndicator("Tab1",
getResources().getDrawable(R.drawable.credit_tab_icon))
.setContent(tab1Intent);
tabHost.addTab(tab1Spec);
Intent tab2Intent = new Intent(this, Tab2Activity.class);
TabSpec tab2Spec = tabHost
.newTabSpec("Tab2")
.setIndicator("Tab2",
getResources().getDrawable(R.drawable.credit_tab_icon))
.setContent(tab2Intent);
tabHost.addTab(tab2Spec);
for(int i=0;i<tabHost.getTabWidget().getChildCount();i++)
{
tabHost.getTabWidget().getChildAt(i).getLayoutParams().height = 80;
}
tabHost.getTabWidget().setCurrentTab(0);
Button ok = (Button) findViewById(R.id.ok);
ok.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
Bundle bundle = new Bundle();
bundle.putInt("category_id",103);
LocalActivityManager manager = getLocalActivityManager();
String currentTag = tabHost.getCurrentTabTag();
Class<? extends Activity> currentClass = manager.getCurrentActivity().getClass();
manager.destroyActivity(currentTag, true);
manager.startActivity(currentTag, new Intent(MainActivity.this, currentClass).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP).putExtras(bundle));
}
});
}
@Override
public void onResume() {
super.onResume();
}
}尝试一下此代码
getTabHost().invalidate()
它应该再次重新绘制选项卡,从而更新其内容。您可以获得当前选项卡并在按钮中刷新文本视图,如下所示:
if (getCurrentActivity() instanceof Tab1Activity ) {
((TextView)((ProductListTab) getCurrentActivity())
.findViewById(R.id.textView1)).setText("103");
}
if (getCurrentActivity() instanceof Tab1Activity ) {
((TextView)((ProductListTab) getCurrentActivity())
.findViewById(R.id.textView1)).setText("103");
}