按键监听实现Fragment跳转

本文介绍了一个简单的Android应用案例,该应用包含四个按钮和一个Fragment容器。点击不同的按钮将加载对应的Fragment,通过Fragment管理器和事务操作实现了Fragment的切换与显示。
摘要由CSDN通过智能技术生成

/**
 * Created by zxn on 2016/7/31.
 * 说明:主界面下方有四个Button,上方为Fragment,点击四个Button会跳转相应的Fragment。Demo
 */
public class FarmMainActivity extends Activity implements View.OnClickListener
{
    //这里有四个Fragment布局。四个类继承Fragment,各自引用自己的布局
    //例:public class Fragment_A_activity extends Fragment
    Fragment_A_activity fragmenta;
    Fragment_B_activity fragmentb;
    Fragment_C_activity fragmentc;
    Fragment_D_activity fragmentd;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        //主界面布局
        super.onCreate(savedInstanceState);
        setContentView(R.layout.ac_farmmain);

        FragmentManager fragmentMtext = getFragmentManager();              //Fragment管理器
        FragmentTransaction transactiontext = fragmentMtext.beginTransaction();//开启事务

        //设置第一个Fragment。APP启动主界面显示的第一个Fragment
        if (fragmenta == null)
        {
            fragmenta = new Fragment_A_activity();
            transactiontext.add(R.id.frameLayout, fragmenta);
        } else
        {
            transactiontext.show(fragmenta);
        }
        transactiontext.commit();
    }


    //给按键添加OnClick以及ID,可以在这边监听
    @Override
    public void onClick(View view)
    {
        FragmentManager fragmentManager = getFragmentManager();              //Fragment管理器
        FragmentTransaction transaction = fragmentManager.beginTransaction();//开启事务
        hide(transaction);//隐藏所有的Fragment
        switch (view.getId())
        {
            //当第一个按钮按下,显示第一个Fragment页面
            case R.id.btn1:
            {
                if (fragmenta == null)
                {
                    fragmenta = new Fragment_A_activity();
                    transaction.add(R.id.frameLayout, fragmenta);
                } else
                {
                    transaction.show(fragmenta);
                }
                break;
            }
             //当第二个按钮按下,显示第二个Fragment页面
            case R.id.btn2:
            {
                if (fragmentb == null)
                {
                    fragmentb = new Fragment_B_activity();
                    transaction.add(R.id.frameLayout, fragmentb);
                } else
                {
                    transaction.show(fragmentb);
                }
                break;
            }
            //当第三个按钮按下,显示第三个Fragment页面
            case R.id.btn3:
            {
                if (fragmentc == null)
                {
                    fragmentc = new Fragment_C_activity();
                    transaction.add(R.id.frameLayout, fragmentc);
                } else
                {
                    transaction.show(fragmentc);
                }
                break;
            }
            //当第四个按钮按下,显示第四个Fragment页面
            case R.id.btn4:
            {
                if (fragmentd == null)
                {
                    fragmentd = new Fragment_D_activity();
                    transaction.add(R.id.frameLayout, fragmentd);
                } else
                {
                    transaction.show(fragmentd);
                }
                break;
            }
        }
        transaction.commit();
    }
    //设置隐藏
    private void hide(FragmentTransaction transaction)
    {
        if (fragmenta != null)
        {
            transaction.hide(fragmenta);
        }
        if (fragmentb != null)
        {
            transaction.hide(fragmentb);
        }
        if (fragmentc != null)
        {
            transaction.hide(fragmentc);
        }
        if (fragmentd != null)
        {
            transaction.hide(fragmentd);
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zxnsirius

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值