您的位置:首页 > 移动开发 > Android开发

Android Fragment使用

2015-07-16 09:10 423 查看
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方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android