磨人的Fragment的转换
磨人的Fragment的转换
本次任务是
程序运行之后将第一个Fragment加载出来
然后点击“SHOW NEXT PAGE”切换到第二个Fragment
当再次点击按钮时下方出现提示“This is second fragment”
再点击屏幕上的返回键
切换至第一个Fragment
任务的重点在于要制作两个Fragment,并且实现他们两个之间的跳转
来看代码
布局代码老规矩 直接贴上
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="暮色倾城"
android:textSize="30dp"
android:gravity="center_horizontal"
android:textColor="@android:color/background_dark" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:orientation="vertical"
android:layout_weight="1">
<Button
android:id="@+id/button"
android:onClick="onClick"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_gravity="center"
android:text="show next page"
/>
</FrameLayout>
<LinearLayout
android:id="@+id/yy_wz"
android:layout_width="match_parent"
android:layout_height="0dp"
android:orientation="vertical"
android:layout_weight="1">
</LinearLayout>
以上是主界面布局
<!-- TODO: Update blank fragment layout -->
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:textSize="30sp"
android:text="@string/lyf_fragment"
android:background="@android:color/holo_blue_bright" />
</FrameLayout>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:textSize="30sp"
android:text="@string/yy_fragment"
android:background="?attr/colorAccent" />
</FrameLayout>
以上是第二个布局代码 差不多 哈哈
然后是主界面的Java代码
其实这个有点困难,上课时就没做好,结果研究了很长时间运行后显示某某某程序已停止运行
我还能说什么,自己想不出个所以然,还好有人帮忙看出了我的问题并帮我修改代码
来看看Java代码
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
YyFragment yyFragment;
LyfFragment lyfFragment;
private boolean huan = true,
tui = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FragmentManager manager = getFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
yyFragment = new YyFragment();
transaction.add(R.id.yy_wz,yyFragment);
transaction.commit();
}
@Override
public void onClick(View view) {
if(view.getId() == R.id.button){
tui = true;
if(huan){
FragmentManager manager = getFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
if ( lyfFragment == null){
lyfFragment = new LyfFragment();
transaction.replace(R.id.yy_wz,lyfFragment);
transaction.commit();
huan = false;
} else{
transaction.replace(R.id.yy_wz,lyfFragment);
transaction.commit();
huan = false;
}
}else{
Toast.makeText(this,"This is second fragment", Toast.LENGTH_SHORT).show();
}
}}
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(event.getKeyCode()== KeyEvent.KEYCODE_BACK&&tui){
FragmentManager manager = getFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
huan = true;
tui = false;
transaction.replace(R.id.yy_wz,yyFragment);
transaction.commit();
return false;
} else {
finish();
}
return super.onKeyDown(keyCode, event);
}
最后一段那个界面的切换和退出有些地方是不明白
虽然有注释 可是我认识汉字却读不懂那些话,只能自己再琢磨慢慢理解了
也就是说最后一段是借鉴别人的,嗯,我会努力理解它的。
最后 感谢小美人 哈哈。
磨人的Fragment的转换的更多相关文章
- 程序员MM的自白:磨人小妖精之安卓碎片化
文/腾讯优测 章婉霞 除了crash问题,Android平台的碎片化越来越受到移动开发的关注,且不谈支持Android系统的移动设备早已过万款,屏幕.品牌以及传感器等方面的碎片化问题也困扰着开发者. ...
- Mono Fragment之间转换
var newFragment = new mybacklogF (); var ft = FragmentManager.BeginTransaction (); ft.Replace (Resou ...
- K2P刷机教程转自恩山磨人的小妖精
K2P刷机指南说明 K2P MTK版发布之初用的是22.5.7.85, 这个版本官改和高恪K2P固件都可以从斐讯固件基础上直接升级, 是所谓直刷.但好景不长, 之后的版本比如22.5.17.33就改了 ...
- A1016 | 磨人的大模拟
这题写得头晕……明天我再评价 #include <stdio.h> #include <memory.h> #include <math.h> #include & ...
- android:Fragment动画的东西
最近很多人来Fragment动画是很感兴趣,我将是一个样本给大家看. 既然做,我会做动画以下类型: 注入弹出动画:从""进入.从"上下左右"弹出,当然,你怎么组 ...
- 苹果笔记本适合什么人 中国Mac电脑用户的8个事实
报告由腾讯 ISUX 研究中心收集了全国 7946 名 Mac 电脑用户的问卷整理而成.并且,参考了苹果公司的历年财报,以及百度.StatCounter 等第三方市场统计数据. 你是 iPhone 用 ...
- Android用户界面开发:Fragment
Android用户界面开发:Fragment 1:注意事项 3.0以前的Android 版本要使用FragmentActivity 来装载Fragment ,使用到support v4包. 3.0 ...
- fragment 小结
1:注意事项 3.0以前的Android 版本要使用FragmentActivity 来装载Fragment ,使用到support v4包. 3.0以后的版本可以直接在Activity里面添 ...
- 我写了个IDEA开源插件,vo2dto 一键生成对象转换
让人头疼的对象转换 头炸,po2vo.vo2do.do2dto,一堆对象属性,取出来塞进来.要不是为了 DDD 架构下的各个分层防腐,真想一竿子怼下去. 那上 BeanUtils.copyProper ...
随机推荐
- 二、http request:消息结构
1.request结构分为三部分: 抽象的东西,难以理解,老感觉是虚的, 所谓眼见为实, 实际见到的东西,我们才能理解和记忆,下面我们用fiddler打开一个博客园的地址,在Inspectors ta ...
- 2.表单与PHP
不管是一般的企业网站还是复杂的网络应用,都离不开数据的添加.通过PHP服务器端脚本语言,程序可以处理那些通过浏览器对Web应用进行数据调用或添加的请求. 回忆一下平常使用的网站数据输入功能,不管是We ...
- nvm管理node版本
一.介绍与作用 不同的项目中可能使用的node版本不同,对于维护多个版本的node就是一件麻烦事了,而nvm就可以很方便的管理不同的node版本, 可以在不同的node版本间切换使用.NVM资源(针对 ...
- Android转换集合数据(ArrayList)为Json格式并上传服务器
使用Gson上传集合数据到服务器,1.最外层用 ArrayMap<String, Object> 封装:2.通过 mRequestParam.put("cmdLineIds&q ...
- firewalld 防火墙配置
1. firewalld-cmd 命令中使用的参数以及作用 --get-default-zone 查询默认的区域名称 --set-default-zone=<区域名称> 设置默认的区域, ...
- Unity 读写文本 文件
1. LitJson的使用 https://blog.csdn.net/qq_35669619/article/details/78928966 https://blog.csdn.net/qq_14 ...
- webconfig标签收集
在web项目启动时,很多因为vs没有报错,而页面跑不出来的情况,无法调试找到错误, 可以在webconfig中添加一个标签,运行项目就可以在页面显示错误 <customErrors mode=& ...
- .net 语音,视频等格式转换
最近在做微信公众号开发的时候遇到一个问题,就是微信接收到语音消息的格式为amr,在网页上通常不能直接播放,需要先转为mp3,于是找到了一个办法,使用ffmpeg.exe,网上可以搜一下ffmpeg.e ...
- c语言:第二次作业,循环结构
1.本章学习总结(2分) 1.1 思维导图 1.2 本章学习体会及代码量学习体会 1.2.1 学习体会 循环相比分支和顺序结构难了许多,相对的来说我的c语言的基础比之前有提高,但是还是很多题想了很久也 ...
- 安装MCScanX
1.首先安装依赖软件 the Java SE Development Kit (JDK) and “libpng” 参考路径:https://mp.weixin.qq.com/s?src=11& ...