fragment之间的通信

Fragment有一个公共的桥梁 Activity

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        //[1]获取Fragment的管理者
        FragmentManager fragmentManager = getFragmentManager();
        //[2]开启事物 
        FragmentTransaction transaction = fragmentManager.beginTransaction();
        //[3]动态替换
        transaction.replace(R.id.ll1, new Fragment1(),"f1");
        transaction.replace(R.id.ll2, new Fragment2(),"f2");
        
        //[4]最后一步 记得commit
        transaction.commit();
        
        
    }


}

 

public class Fragment1 extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment1, null);
        //[1]找到按钮设置点击事件 
        view.findViewById(R.id.button1).setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View v) {

                Toast.makeText(getActivity(), "jagjajgl", 1).show();
                //[2]修改Fragment2里面textview的值 
                Fragment2 f2 = (Fragment2) getActivity().getFragmentManager().findFragmentByTag("f2");
                f2.setText("haahha");
                
            }
        });
        
        return view;
    }
}
public class Fragment2 extends Fragment {

    private TextView tView;


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment2, null);
        
        tView = (TextView) view.findViewById(R.id.tv);
        
        return view;
    }
    
    
    //修改textview值的方法
    public void setText(String content){
        tView.setText(content);
    }
}

 

posted @ 2016-12-01 21:45  iFat  阅读(2084)  评论(0编辑  收藏  举报