磨人的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. 为什么移动构造要使用noexcept

    vector::push_back操作,保证了如果过程中出现异常,vector不会发生变化. push_back过程中,可能会因为已有内存空间不够,申请新的内存,同时把原内存中已有的元素,放到新申请的 ...

  2. 触摸事件,手势识别(UITouch,UIGestureRecognizer)

    触摸发生时,UIWindow会有一个队列来存放所有的触摸事件,然后再把这些事件发送给对应的hit-test view,hit-test view会通过touch的四个函数来接收这些事件. 四个函数分别 ...

  3. 记一次easywechat企业付款问题

    由easywechat的cli "./vendor/bin/easywechat payment:rsa_public_key" 获取RSA公钥时 生成的.pem文件内的公钥默认是 ...

  4. Linux命令:popd

    语法 popd [-n] [+N | -N | dir] 把目录弹栈,就是从栈里删除.popd只有删除一种意思,不像pushd,既有压栈,又有移动栈内目录的功能. 不带任何参数,模式删除栈顶,即最上面 ...

  5. Debian 安装 virtualbox

    首先增加源: echo "deb http://download.virtualbox.org/virtualbox/debian stretch contrib" > /e ...

  6. 快速干掉Windows Defender

    1.快捷键Win+R,调出"运行"对话框,输入"gpedit.msc",打开组策略编辑器: 2.展开"计算机配置"→"管理模板&q ...

  7. 可视化svg深入理解viewport、viewbox、preserveaspectradio

    直接运行此例子 深入理解svg的viewport.viewbox.preserveaspectradio实例 <!DOCTYPE html> <html lang="en& ...

  8. logging-----日志模块

    import logging #creat logger 第一步,创建一个记录器 logging_name = 'test' logger = logging.getLogger(logging_na ...

  9. SQL Server扩展事件的使用ring_buffer target时“丢失”事件的原因分析以及ring_buffer target潜在的问题

    事情起因: 排查SQL Server上的死锁问题,一开始想到的就是扩展事件, 第一种方案,开profile守株待兔吧,显得太low了,至于profile的变种trace吧,垂垂老矣,也一直没怎么用过. ...

  10. jenkins登录后页面显示为空的问题

    1.然后再打开一个新的窗口,输入网址http://localhost:8080/jenkins/pluginManager/advanced,输入网址打开后滑动到页面下方,最底下有个[升级站点],把其 ...