Android 实现点击两个按钮,原地切换界面

最近在项目中遇到这样一个问题,大致是在页面中有两个按钮,负责切换两个页面,只是在原地切换。类似账单流水,显示充值,消费。
老规矩 上图,由于没有添加Select选择器,所以按钮没有点击效果。在运用中添加即可。通过android:button=”@null”属性去掉了RadioButon的圆点,完美替代Buton。这里TabWidget标签卡不能删除。原因是TabWidget与TabHost实现标签卡切换。

这里写图片描述
这里写图片描述

布局代码

<TabHost
        android:id="@android:id/tabhost"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >

        <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >
        <LinearLayout
            android:id="@+id/console_line_bottom"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

            <RadioGroup
                android:id="@+id/main_tab_group"
                android:background="@color/white"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                 >

                <RadioButton
                    android:id="@+id/rb_tab_useCabage"
                    android:background="#00D4A0"
                    android:padding="10dp"
                    android:gravity="center_horizontal"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="2"
                    android:checked="true"
                    android:textSize="16sp"
                    android:button="@null"
                    android:text="消费" />

                <RadioButton
                    android:id="@+id/rb_tab_chongzhiCabage"
                    android:padding="10dp"
                    android:gravity="center_horizontal"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="2"
                    android:button="@null"
                    android:textSize="16sp"
                    android:text="充值" />

            </RadioGroup>
        </LinearLayout>

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="0.0dip"
            android:layout_weight="1.0" />
        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="0.0"
            android:visibility="gone" />

    </LinearLayout>
   </TabHost>

逻辑代码

布局主要采用的TabHost+RadioButon实现切换FrameLayout来切换内容页面。在主代码中让Activity extends TabActivity ,这样主要使用其getTabHost()方法;通过RadioButton点击事件中设置tabHost.setCurrentTabByTag(“use”);通过Tag值关联到TabHost的创建的新的类页面:tabHost.addTab(tabHost.newTabSpec(“use”).setIndicator(“use”).setContent(new Intent(this, XiaoFeiCabageActivity.class)));从而实现了点击按钮,“原地”切换页面的功能,
public class XiaoFeiWater extends TabActivity implements OnClickListener {

    TabHost tabHost;
    private RadioButton rb_tab_useCabage,rb_tab_chongzhiCabage;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_xiaofei_water);

         initTab();
         init();
    }
    /**
     * 初始化数据
     */
    private void init() {
        rb_tab_useCabage = (RadioButton) findViewById(R.id.rb_tab_useCabage);
        rb_tab_chongzhiCabage = (RadioButton) findViewById(R.id.rb_tab_chongzhiCabage);
        rb_tab_useCabage.setOnClickListener(this);
        rb_tab_chongzhiCabage.setOnClickListener(this);
    }

    /**
     * 初始化Tab
     */
    private void initTab() {
        tabHost=getTabHost();
        tabHost.addTab(tabHost.newTabSpec("use").setIndicator("use")
                .setContent(new Intent(this, XiaoFeiCabageActivity.class)));

        tabHost.addTab(tabHost.newTabSpec("chongzhi").setIndicator("chongzhi")
                .setContent(new Intent(this, ChongZhiCabageActivity.class)));

    }
    /**
     * 点击事件
     * @param v
     */
    @Override
    public void onClick(View v) {
        switch (v.getId()) {

        case R.id.rb_tab_useCabage:
            tabHost.setCurrentTabByTag("use");
            break;
        case R.id.rb_tab_chongzhiCabage:
            tabHost.setCurrentTabByTag("chongzhi");
            break;

        default:
            break;
        }

    }
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值