Android TabHost切换选项卡实现数据实时刷新

手机界面大小有限,使用TabHost可以达到在一个Activity中放入多个容器(界面)的效果。但存在一个问题是,当数据信息在一个容器(界面)中有所改变时,需要在用户切换选项卡到其他容器(界面)的时候实时刷新数据。

如图,在”发布板报“页面发布新的板报,当用户点击“浏览板报”或者“管理板报”选项卡时要刷新数据——显示出刚刚发布的板报。

解决问题的关键在于对选项卡修改事件的监听,根据Tab ID来调用相应的方法。

核心代码:

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // ---------------------------Tab布局设置---------------------------------------
        final TabHost tabHost = getTabHost();
        // 设置使用TabHost布局
        LayoutInflater.from(this).inflate(R.layout.highlogined,
                tabHost.getTabContentView(), true);
        // 添加第一个标签页
        tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("浏览板报")
                .setContent(R.id.tab01));
        // 添加第二个标签页
        tabHost.addTab(tabHost.newTabSpec("tab2").setIndicator("发布板报")
                .setContent(R.id.tab02));
        // 添加第三个标签页
        tabHost.addTab(tabHost.newTabSpec("tab3").setIndicator("管理板报")
                .setContent(R.id.tab03));
        int width = 45; // 设置选项卡的高度和宽度
        int height = 48;
        TabWidget tabWidget = tabHost.getTabWidget();
        for (int i = 0; i < tabWidget.getChildCount(); i++) {
            // 设置高度、宽度,不过宽度由于设置为fill_parent,在此对它没效果
            tabWidget.getChildAt(i).getLayoutParams().height = height;
            tabWidget.getChildAt(i).getLayoutParams().width = width;
        }
        // 设置监听器,实现数据实时刷新
        tabHost.setOnTabChangedListener(new OnTabChangeListener() {
            public void onTabChanged(String tabId) {
                if (tabId.equals("tab1")) {
                    getContents(); // 得到浏览所有板报的方法
                } else if (tabId.equals("tab2")) {
                } else if (tabId.equals("tab3")) {
                    lookOwnBoard(); // 得到浏览本人发布得板报的方法
                }
            }
        });
}
时间: 2024-08-08 22:07:41

Android TabHost切换选项卡实现数据实时刷新的相关文章

Android tabhost 切换activity时数据不刷新

解决方案 在android中,使用tabHost的时候,如果tab被点击,该tab所对应的activity被加载了,从别的tab切换回来的时候,activity不会再次被创建了(onCreate),所以要想每次点击tab都刷新activity,有如下方法: 方法1 把要刷新的对象添加到onresume 1 @Override 2 public void onResume() { 3 super.onResume(); 4 //代码 5 } 每次切换tab,该activity会调用次方法onres

修炼-------------Android TabHost,TabWidget选项卡总结

修炼-------------Android TabHost,TabWidget选项卡总结 Android之TabHost TabHost,个人理解为选项卡的容器,是一种特殊的FrameLayout布局(帧布局) 根据SDK文档, Container for a tabbed window view. This object holds two children: a set of tab labels that the user clicks to select a specific tab,

android TabHost(选项卡)

1:在布局文件中配置选项卡的内容 <?xml version="1.0" encoding="utf-8"?> <TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/tabhost" android:layout_width="match_parent" and

Android fragment 切换加载数据卡顿问题

接着上一篇项目的进度,上一篇讲了如何利用fragment来实现下拉菜单,公用菜单,以实现切换主界面数据的功能,这时候遇到的问题是:使用了fragment的切换界面方法,但加载的数据太多,用户从一个界面切换到这个界面的时候,至少有一两秒的卡顿,这是无法忍受的,代码如下: private void initOpenMenuItem(View popupWindow_view) { <span style="white-space:pre"> </span>Drawa

【android开发】实现语音数据实时采集/播放

最近做的项目是和语音实时采集并发送,对方实时接收并播放相关,下面记录下实现的核心代码. 很多android开发者应该知道android有个MediaRecorder对象和MediaPlayer对象,用于录制和播放音频.这个弊端在于他们不能实时采集并发送出去,所以,我们只能使用AudioRecord和AudioTrack来实现. 记得申明权限: <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS&qu

android TabHost切换导致FragmentActivity重启

====================问题描述==================== 不知道有没人遇到这问题,Tab间的切换都导致FragmentActivity重启了..我就想实现这种效果,每个Tab都会记录最后一次打开的页面,切换回来还能显示出来TabHost + FragmentActivity 怎么配合来使用. ====================解决方案1==================== 引用 楼主 zhang19_88 的回复: 不知道有没人遇到这问题,Tab间的切换

js实现text文本框的数据实时刷新到另一个text文本框

<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>demo01</title></head><body> <form> <h1>text文本框数据同步刷新</h1> <input type="text" onpropertychange="cop()&qu

SrpingCloud 之SrpingCloud config分布式配置中心实时刷新

默认情况下是不能及时获取变更的配置文件信息 Spring Cloud分布式配置中心可以采用手动或者自动刷新 1.手动需要人工调用接口   监控中心 2.消息总线实时通知  springbus 动态刷新数据 在SpringCloud中有手动刷新配置文件和实时刷新配置文件两种方式. 手动方式采用actuator端点刷新数据 实时刷新采用SpringCloud Bus消息总线 actuator端点刷新数据 在config clientr引入 <dependency> <groupId>o

android--解决方案--自定义tabhost(动态添加选项+带自动水平滑动选项卡+手势切换选项卡及内容功能)

本文主要解决自定义tabhost的实现,以及集成通过代码动态添加选项卡功能.选项卡水平自动滑动功能.以及通过手势来切换选项卡功能. 下面跟我一起来完成这个完美的解决方案: 1.定义tabwidget选项卡的布局:tab_button.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/r