磨人的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. junit,面向切面开发(动态代理),工厂设计模式,数据库连接池

    1.junit junit又叫单元测试,好处是能进行批量测试,而且如果方法出现了问题能立刻定位出出现问题的方法,还有一个好处是感官效果很好,如果方法都通过了则显示绿条,否则显示红条 TestCase. ...

  2. ubuntu 外接显示器

    xrandr --help xrandr   # 列出显示器 sudo xrandr --output eDP-1 --off   # 关闭eDP-1显示器 sudo xrandr --output ...

  3. 云栖大会day1 上午

    参与云栖大会第一天感受 早晨参与内容 数据智能实践专场 议程是 09:00-09:25 互联网下半场用户增长之路 吕志国 [友盟+]CPO 09:25-09:50 数据开启智慧零售的升级引擎 刘延明 ...

  4. ActiveMq Windows 配置优化

    最近ActiveMQ 5.15.3 会报 OutofMemory的错误 在 wrapper.conf中 #wrapper.java.additional.8=-Dorg.apache.activemq ...

  5. node.js异步编程的几种模式

    Node.js异步编程的几种模式 以读取文件为例: 1.callback function const fs = require('fs'); //callback function fs.readF ...

  6. TabLayout占不满屏幕所有宽度

    <android.support.design.widget.TabLayout android:id="@+id/tab_layout" android:layout_wi ...

  7. jquery通过AJAX从后台获取信息并显示在表格上的类

    前一阵我写了:<jquery通过AJAX从后台获取信息并显示在表格上,并支持行选中.>现在,我把他们处理了一下,不需要每次写代码了: 具体代码如下: //获取数据并显示数据表格 funct ...

  8. 《Dare To Dream》第七次作业:团队项目设计完善&编码测试

    任务一:团队项目<软件设计方案说明书>Github链接:https://github.com/Sophur/Team-Project 任务二:项目集成开发环境: (1)JSP技术 JSP( ...

  9. win10x64启动vs2010报错:未能加载C:\Windows\Microsoft.NET\Framework\v2.0.50727\microsoft.vsa.tlb

    换了新电脑,因为是win10x64系统,可能是兼容性的问题吧. 启动vs2010,在启动画面直接报错:未能加载C:\Windows\Microsoft.NET\Framework\v2.0.50727 ...

  10. leetcode136只出现一次的数字

    交换律:a ^ b ^ c <=> a ^ c ^ b 任何数于0异或为任何数 0 ^ n => n 相同的数异或为0: n ^ n => 0 int singleNumber ...