• 方法一:直接getActivity,使用activity的fragmenttransation的replace方法替换
    假设

      class OneFragment extends Fragment{  private Button btn;  @Override  public View onCreateView(LayoutInflater inflater, ViewGroup container,  Bundle savedInstanceState) {  View view = inflater.inflate(R.layout.frag_one, null);  btn = (Button)view.findViewById(R.id.button);  btn.setOnClickListener(new OnClickListener() {    @Override  public void onClick(View v) {  FragmentManager fm = getActivity().getFragmentManager();  fm.beginTransaction()  //替换为TwoFragment  .replace(R.layout.fragment_container,new TwoFragment())  .commit();  }  });  return super.onCreateView(inflater, container, savedInstanceState);  }  }

但是这样做会使OneFragment和原activity的耦合度提高,fragment设计出来就是有重用的目的,所以不好,使用方法二

  • 方法2:定义回调函数,当button按下调用回调

      class OneFragment extends Fragment{  private Button btn;  private OnButtonClick onButtonClick;  @Override  public View onCreateView(LayoutInflater inflater, ViewGroup container,  Bundle savedInstanceState) {  View view = inflater.inflate(R.layout.frag_one, null);  btn = (Button)view.findViewById(R.id.button);  btn.setOnClickListener(new OnClickListener() {    @Override  public void onClick(View v) {  if(onButtonClick!=null){  onButtonClick.onClick(btn);  }  }  });  return super.onCreateView(inflater, container, savedInstanceState);  }  public OnButtonClick getOnButtonClick() {  return onButtonClick;  }  public void setOnButtonClick(OnButtonClick onButtonClick) {  this.onButtonClick = onButtonClick;  }  public interface OnButtonClick{  public void onClick(View view);  }  }

    这样只要在acitivty中设置回调即可

      public class MainActivity extends Activity {    private OneFragment oneFragment = new OneFragment();  @Override  protected void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.activity_main);  //。。。  //。。。省略代码  oneFragment.setOnButtonClick(new OnButtonClick() {    @Override  public void onClick(View view) {  //切换到TwoFragment  fm.beginTransaction()  //替换为TwoFragment  .replace(R.layout.fragment_container,new TwoFragment())  .commit();  }  });  }  }

更多相关文章

  1. framework——应用进程启动流程
  2. Android(安卓)几种图像特效处理的集锦
  3. Android(安卓)选择文件并加载数据到界面
  4. Android中几种图片特效的处理的实现方法
  5. Android实现自动轮播图效果
  6. 【Android小经验】 ListView列中的一个ITEM值
  7. Android(安卓)去掉title bar的3个方法
  8. Android(安卓)标题栏,状态栏放置一个ProgressBar

随机推荐

  1. Android 双开沙箱 VirtualApp 源码分析(三
  2. Android之复选框对话框用法实例分析
  3. Android在代码中请求root权限
  4. 在Windows XP下Eclipse中安装Android并配
  5. android + cygwin + cocos2d-x环境搭建
  6. Android底层开发之Audio HAL
  7. Android中单APK应用多进程
  8. 手动更新Android SDK
  9. Android自动化测试工具——Monkey .
  10. android EditText 取消自动获取焦点