Android 在TabHost中重新加载选项卡内容

Android 在TabHost中重新加载选项卡内容,android,android-tabhost,reload,Android,Android Tabhost,Reload,我有一个带有两个选项卡的选项卡视图,在我的TabActivity中有一个按钮。单击按钮时,我希望将数据发送到当前选项卡,并将数据显示到当前选项卡。当我处理这些数据时,数据是可用的,但当我将这些数据设置为textview时,我的textview没有改变。如何从tabhost活动刷新选项卡内容?(抱歉我的英语不好:P)这是我的代码: public class MainActivity extends TabActivity { TabHost tabHost; @Override public

我有一个带有两个选项卡的选项卡视图,在我的TabActivity中有一个按钮。单击按钮时,我希望将数据发送到当前选项卡,并将数据显示到当前选项卡。当我处理这些数据时,数据是可用的,但当我将这些数据设置为textview时,我的textview没有改变。如何从tabhost活动刷新选项卡内容?(抱歉我的英语不好:P)这是我的代码:

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");
                                }