Android Fragment使用

本文深入探讨了Android中Fragment的高级用法,包括参数传递、布局整合、切换管理、回退栈操作、与Activity间通信及代码示例。

1、正确的传递参数方式

public class DemoFragment extends Fragment{

    private int type = 0;

    public static DemoFragment newInstance(int type){
        DemoFragment fragment = new DemoFragment();
        Bundle bundle = new Bundle();
        bundle.putInt("type", type);
        fragment.setArguments(bundle);
        return fragment;
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Bundle args = getArguments();
        if(args != null){
            type = getArguments().getInt("type", 0);
        }
    }

}


FragmentManager fm = getSupportFragmentManager(); 

Fragment fragment =  fm.findFragmentById(R.id.container); 

if(fragment == null){
    fragment = DemoFragment.newInstance(0);

     fm.beginTransaction().add(R.id.container,  fragment).commit();

}


2、如何在布局中使用

 <fragment
           class="com.test.fragment.DemoFragment"
           android:layout_width="match_parent"
           android:layout_height="match_parent"/>


3、Fragmen如何t切换

FragmentManager fm  = getAactivity().getSupportFragmentManager();
fm.beginTransaction().replace(container,  fragment).addToBackStack(null).commit();


4、加入回退栈后如何回退

if(getSupportFragmentManager().getBackStackEntryCount() > 0){

    getSupportFragmentManager().popBackStack();
 }


5、使结果返回到Fragment

Fragment.startActivityForResult(Intent intent, int requestCode)

Fragment.onActivityResult(int requestCode, int resultCode, Intent data)


6、Fragment与Activity之间的访问

public interface OntChangeListener {
    abstract void onChange();

}

public class DemoActivity extends FragmentActivity implements OnChangeListener{

    @Override
    public void OnChange() {
        
    }

}

Fragment通过接口访问Activity

if(getActivity() instanceof OnChangeListener){
        ((OnChangeListener)getActivity()).onChange();
 }

Activity拥有Fragment实列,可以直接调用Fragment方法




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值