一共有4个fragment,分别是contact(联系人),friends(朋友),search(查找),more(更多)。使用的都是同一个布局,每个fragment中都有四个内部按钮,可以切换到其他的3个fragment中。

现在只考虑在contact中,实现点4个(其实有效的是3个),切换到其他3个fragment中。

现在的情况是,点击contactfragment中的按钮,toast会响应,但是fragment不会跳转。这是怎么回事,下面是两个类的代码。

这是contactfragment。

public class ContactFragment extends Fragment implements OnClickListener {MainActivity activity = (MainActivity) getActivity();View view = null;Button btn_inner_contact;Button btn_inner_friends;Button btn_inner_search;Button btn_inner_more;@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {view = inflater.inflate(R.layout.frag_content, container, false);TextView textview_hint = (TextView) view.findViewById(R.id.textview_hint);textview_hint.setText("Contact");initComponent();return view;}private void initComponent() {btn_inner_contact = (Button) view.findViewById(R.id.button_inner_contact);btn_inner_friends = (Button) view.findViewById(R.id.button_inner_friends);btn_inner_search = (Button) view.findViewById(R.id.button_inner_search);btn_inner_more = (Button) view.findViewById(R.id.button_inner_more);btn_inner_contact.setOnClickListener(this);btn_inner_friends.setOnClickListener(this);btn_inner_search.setOnClickListener(this);btn_inner_more.setOnClickListener(this);}@Overridepublic void onClick(View v) {FragmentManager fm = activity.getFragmentManager();FragmentTransaction ft = fm.beginTransaction();switch (v.getId()) {case R.id.button_inner_contact:Toast.makeText(getActivity(), "点击了内部contact按钮", Toast.LENGTH_SHORT).show();if (activity.contactFragment == null) {activity.contactFragment = new ContactFragment();}ft.replace(R.id.framelayout_content, activity.contactFragment);break;case R.id.button_inner_friends:Toast.makeText(getActivity(), "点击了内部friends按钮", Toast.LENGTH_SHORT)if (activity.friendsFragment == null) {activity.friendsFragment = new FriendsFragment();}ft.replace(R.id.framelayout_content, activity.friendsFragment);break;case R.id.button_inner_more:if (activity.moreFragment == null) {activity.moreFragment = new MoreFragment();}ft.replace(R.id.framelayout_content, activity.moreFragment);break;case R.id.button_inner_search:if (activity.searchFragment == null) {activity.searchFragment = new SearchFragment();}ft.replace(R.id.framelayout_content, activity.searchFragment);break;default:break;}ft.commit();}}

这是mainactivity类,mainactivity中的那四个按钮及其响应时间是fragment外部的四个按钮,与内部的inner按钮没关系

public class MainActivity extends Activity implements OnClickListener {public ContactFragment contactFragment;public FriendsFragment friendsFragment;public MoreFragment moreFragment;public SearchFragment searchFragment;private Button btn_contact;private Button btn_friends;private Button btn_search;private Button btn_more;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initcomponet();initview();}private void initview() {contactFragment = new ContactFragment();FragmentManager fm = getFragmentManager();FragmentTransaction ft = fm.beginTransaction();ft.add(R.id.framelayout_content, contactFragment);ft.commit();}private void initcomponet() {btn_contact = (Button) findViewById(R.id.button_contact);btn_friends = (Button) findViewById(R.id.button_friends);btn_more = (Button) findViewById(R.id.button_more);btn_search = (Button) findViewById(R.id.button_search);btn_contact.setOnClickListener(this);btn_friends.setOnClickListener(this);btn_more.setOnClickListener(this);btn_search.setOnClickListener(this);}@Overridepublic void onClick(View v) {FragmentManager fm = getFragmentManager();FragmentTransaction ft = fm.beginTransaction();switch (v.getId()) {case R.id.button_contact:if (contactFragment == null) {contactFragment = new ContactFragment();}ft.replace(R.id.framelayout_content, contactFragment);break;case R.id.button_friends:if (friendsFragment == null) {friendsFragment = new FriendsFragment();}ft.replace(R.id.framelayout_content, friendsFragment);break;case R.id.button_more:if (moreFragment == null) {moreFragment = new MoreFragment();}ft.replace(R.id.framelayout_content, moreFragment);break;case R.id.button_search:if (searchFragment == null) {searchFragment = new SearchFragment();}ft.replace(R.id.framelayout_content, searchFragment);break;default:break;}ft.commit();}}

我试了一下,把MainActivity activity=(MainActivity)getActivity();这行代码放到onclick方法了,就可以了!

android fragment 跳到另一个fragment相关推荐

  1. fragment里面嵌套另一个fragment

    最近换了工作,说白了,就是去填坑啦,首页改版,原来是viewpager+标签切换滑动实现,现在改成popupwindow+recyclerview实现,为了减少工时,我在原来的基础上复用了fragme ...

  2. 【Android Developers Training】 20. 创建一个Fragment

    注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...

  3. Android Fragment详解(二):Fragment创建及其生命周期

    Fragments的生命周期 每一个fragments 都有自己的一套生命周期回调方法和处理自己的用户输入事件. 对应生命周期可参考下图: 创建片元(Creating a Fragment) To c ...

  4. Android开发之漫漫长途 XII——Fragment 详解

    作者:忘了12138 地址:http://www.cnblogs.com/wangle12138/p/8351907.html 声明:本文是 忘了12138 原创投稿,转发请联系原作者授权 该文章是一 ...

  5. Android开发之漫漫长途 XII——Fragment详解

    该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列.该系列引用了<Android开发艺术探索>以及<深入理解And ...

  6. Fragment 跳转到指定的Fragment 与 Activity跳转到指定的Fragment 的方法

    Fragment 跳转到指定的Fragment 主要分为2中情况 1 同一个Activity上的Fragment 跳转到指定Fragment 例如MainActivity 上的Fragment 跳转问 ...

  7. android activity跳转多次闪退_Android实现Activity和Fragment的跳转动画

    1.使用overridePendingTransition方法实现Activity跳转动画 botton_in <?xml version="1.0" encoding=&q ...

  8. Android跳转动画时长,Android_Activit跳转动画之界面上某个位置并裂开上下拉伸动画跳转,需求:Activity(fragment)跳转的时候 - phpStudy...

    Activit跳转动画之界面上某个位置并裂开上下拉伸动画跳转 需求:Activity(fragment)跳转的时候当前界面裂开,上下各自拉出手机屏幕,之后跳转到相对应的Activity.整体效果图如下 ...

  9. Android之解决viewpage加载第3个fragment的时候,第一个fragment又重新构建问题

    1 .问题 viewpage加载第3个fragment的时候,第一个fragment又重新构建问题,感觉自己好傻逼的,不知道啥原因,原来是少了一个设置,加载旁边多少个fragment不销毁 2 .解决 ...

  10. android 界面跳转封装,【Android】Fragment跳转系列

    一.同一个Activity下Fragment之间相互跳转(含带参数) Fragment1跳转到Fragment2中 1.封装一个方法 这样封装是方便一个Activity下有多个Fragment来回跳转 ...

最新文章

  1. 大型企业门户网站设计开发一般性原则和建议
  2. 绩效面谈流程,阿里是这样做的
  3. 后台返回数据打印是[object object]的,报错:SyntaxError: JSON.parse: expected property name or ‘}‘ at line 1 column
  4. 苹果AirPods大受欢迎:与iPod鼎盛时期相当
  5. springboot mybatisplus 多数据源_【SpringBoot DB 系列】MybatisPlus 多数据源配置
  6. git 删除已经 add 的文件
  7. 关于C++中的继承感悟
  8. VGG16网络结构要点
  9. Autodesk HSMWorks Ultimate 2019 Crack 破解版
  10. 移动硬盘打开文件突然变得很卡
  11. 端到端语音识别 ESPnet ASR脚本流程(asr.sh)
  12. Cesium 关于相机的orientation 及 destination并制作地球动画
  13. 全国计算机等级考试 三级网络技术 知识点总结
  14. 如何浏览自己的新浪微博图床
  15. 吊炸天,Spring Security还有这种用法
  16. 一般树与二叉树的相互转换
  17. 无监督学习——K均值聚类的Python实现
  18. 成长与危险相伴是常态,加强安全审计才是硬道理
  19. 起底被阿里相中的汇通达:另类农村电商独角兽如何炼成
  20. 从MySQL获取的数据无法在PHP输出_无法从PHP发送内容类型:text/xml header,同时从MYSQL获取数据...

热门文章

  1. (转)谷歌安卓官方教程中文版
  2. Android Studio 安装说明
  3. CentOS 5.4 安装和卸载桌面
  4. Mysql BLOB和TEXT类型
  5. SQL注入漏洞的判断
  6. Oracle 11g Release 1 (11.1)——自动存储管理(Automatic Storage Management,ASM)
  7. vue中使用echarts
  8. vue echart甘特图
  9. 130242014075 杨利城 《电商系统某功能模块》的需求分析与设计
  10. 蓝桥 PREV-34 历届试题 矩阵翻硬币