磨人的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的转换的更多相关文章

  1. 程序员MM的自白:磨人小妖精之安卓碎片化

    文/腾讯优测 章婉霞 除了crash问题,Android平台的碎片化越来越受到移动开发的关注,且不谈支持Android系统的移动设备早已过万款,屏幕.品牌以及传感器等方面的碎片化问题也困扰着开发者. ...

  2. Mono Fragment之间转换

    var newFragment = new mybacklogF (); var ft = FragmentManager.BeginTransaction (); ft.Replace (Resou ...

  3. K2P刷机教程转自恩山磨人的小妖精

    K2P刷机指南说明 K2P MTK版发布之初用的是22.5.7.85, 这个版本官改和高恪K2P固件都可以从斐讯固件基础上直接升级, 是所谓直刷.但好景不长, 之后的版本比如22.5.17.33就改了 ...

  4. A1016 | 磨人的大模拟

    这题写得头晕……明天我再评价 #include <stdio.h> #include <memory.h> #include <math.h> #include & ...

  5. android:Fragment动画的东西

    最近很多人来Fragment动画是很感兴趣,我将是一个样本给大家看. 既然做,我会做动画以下类型: 注入弹出动画:从""进入.从"上下左右"弹出,当然,你怎么组 ...

  6. 苹果笔记本适合什么人 中国Mac电脑用户的8个事实

    报告由腾讯 ISUX 研究中心收集了全国 7946 名 Mac 电脑用户的问卷整理而成.并且,参考了苹果公司的历年财报,以及百度.StatCounter 等第三方市场统计数据. 你是 iPhone 用 ...

  7. Android用户界面开发:Fragment

    Android用户界面开发:Fragment 1:注意事项  3.0以前的Android 版本要使用FragmentActivity 来装载Fragment ,使用到support v4包.  3.0 ...

  8. fragment 小结

    1:注意事项   3.0以前的Android 版本要使用FragmentActivity 来装载Fragment ,使用到support v4包.   3.0以后的版本可以直接在Activity里面添 ...

  9. 我写了个IDEA开源插件,vo2dto 一键生成对象转换

    让人头疼的对象转换 头炸,po2vo.vo2do.do2dto,一堆对象属性,取出来塞进来.要不是为了 DDD 架构下的各个分层防腐,真想一竿子怼下去. 那上 BeanUtils.copyProper ...

随机推荐

  1. join,left join,inner join,full join的区别?

    left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录inner join(等值连接) 只 ...

  2. Python 学习笔记03篇

    看着直播,想着未赶完的工作 真的很想学好一门编程语言

  3. 使用其他分支替换master分支

    在提交混乱的时候, 导致master分支和远程仓库完全一致的时候,这时候解决这种问题可以创建一个新的分支, 再合并到master分支, 像这样: git checkout seotweaks git ...

  4. 第二篇 Flask 中的 Render Redirect HttpResponse

    第二篇 Flask 中的 Render Redirect HttpResponse   1.Flask中的HTTPResponse 在Flask 中的HttpResponse 在我们看来其实就是直接返 ...

  5. concurrentHashMap求size

    在 JDK1.7 中,首先会使用不加锁的模式去尝试多次计算 ConcurrentHashMap 的 size,最多三次,比较前后计算的结果,结果一致就认为当前没有元素加入,计算的结果是准确的.如果不符 ...

  6. bootloaderd的再解析

    boot的0脚和1脚可以选择启动方式,以前只知道可以选择的方式是nandflash启动,或者选择从norflash启动,当选择nandflash启动时,cpu看到的0地址是ram的0地址,根据是nan ...

  7. sqlserver改主键初始ID

  8. centos7下编译安装php7.3

    一.下载php7.3的源码 https://www.php.net/downloads.php 下载php-7.3.4.tar.gz 二.安装gcc,gcc-c++,kernel-devel yum ...

  9. html模板导出pdf文件

    package com.crc.commonreport.util; import java.awt.Insets; import java.io.ByteArrayOutputStream; imp ...

  10. ES6基本使用

    var let 度可用于声明变量. 区别:1.let:只在let命令所在代码块内有效 2.let 不存在变量提升(内部影响不到外部) var b = []; ;j<;j++){ let d=j; ...