这个问题百度了很多能用的很少!

原来看的B站的视频教程比较老了参数不匹配!我记一下安卓studio3.1的方法

切换fragment 前都先要 FragmentManager manager=getSupportFragmentManager()  //这个是 android.support.v4.app.FragmentManager;

然后FragmentTransaction transaction=manager.beginTransaction();  之后执行  transaction.replace(fragment 的id); 最后  transaction.commit();

感觉一般主窗口载入窗口你会Add一个fragment  之后点击切换的时候 程序就会崩溃!!!!  你要在载入你fragment  前面加入 transaction=manager.beginTransaction();不管你载入那个fragment  都加这一句

代码如下写的很low 凑合看

主窗口代码

package com.stdu.myllogin;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
private TextView zhanghaodenglu;
private TextView dongtaimimadenglu;
private FragmentManager manager;
private FragmentTransaction transaction;
private YanZhengMaFragment yanZhengMaFragment;
private LoginFragment loginFragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
loginFragment=new LoginFragment();
manager= getSupportFragmentManager();
transaction=manager.beginTransaction();
transaction.replace(R.id.login_frea,loginFragment);
transaction.commit(); zhanghaodenglu=findViewById(R.id.zhanghao_login);
dongtaimimadenglu=findViewById(R.id.mima_login);
zhanghaodenglu.setOnClickListener(listener);
dongtaimimadenglu.setOnClickListener(listener);
yanZhengMaFragment=new YanZhengMaFragment();
loginFragment=new LoginFragment(); } private View.OnClickListener listener=new View.OnClickListener() {
@Override
public void onClick(View view) {
switch (view.getId())
{ case R.id.mima_login: hideFragment(transaction); //transaction.remove(loginFragment);
transaction=manager.beginTransaction();//这里一定要再写一遍 否则会出错
transaction.replace(R.id.login_frea,yanZhengMaFragment);
transaction.commit();
// Toast.makeText(MainActivity.this,"验证码登陆测试",Toast.LENGTH_SHORT).show();
break;
case R.id.zhanghao_login:
hideFragment(transaction); transaction=manager.beginTransaction();//这里一定要再写一遍 否则会出错
transaction.replace(R.id.login_frea,loginFragment);
transaction.commit();
//Toast.makeText(MainActivity.this,"账号登陆测试",Toast.LENGTH_SHORT).show();
break;
}
}
}; private void hideFragment(FragmentTransaction transaction) {
if (loginFragment != null) { transaction.remove(loginFragment);
}
if (yanZhengMaFragment != null) { transaction.remove(yanZhengMaFragment);
}
}
}

  布局界面不写了看看我的哈皮运行截图吧

安卓fragment transaction add方法报错的更多相关文章

  1. appium+python自动化64-使用Uiautomator2执行driver.keyevent()方法报错解决

    前言 未加'automationName': 'Uiautomator2'参数使用Uiautomator可以正常使用driver.keyevent()方法,使用Uiautomator2时driver. ...

  2. 项目实体类使用@Data注解,但是项目业务类中使用getA(),setA()方法报错,eclipse中配置lombok

    @Data注解来源与Lombok,可以减少代码中大量的set get方法,大量减少冗余代码,但是今天部署项目时候,发现实体类使用@Data注解,但是项目业务类中使用getA(),setA()方法报错. ...

  3. eclipse中运行 main 方法报错,找不到类

    eclipse (maven 项目)中运行 main 方法报错,找不到类 ** 发现:在 eclipse中的 "Marker" 控制面板中 ,发现问题所在 只要删除 maven 仓 ...

  4. Android webview js 调用java方法报错"Uncaught TypeError: Object [object Object] has no method xx

    webview开发,在Android4.4下js调用java方法报错"Uncaught TypeError: Object [object Object] has no method,同样的 ...

  5. 桥接:JS调用安卓方法报错Uncaught Error: Error calling method on NPObject

    说一说自己粗心踩到的一个不算坑的坑: 项目是安卓webview嵌入SPA单页应用页面,涉及到JS调用原生安卓方法,但就是在调用安卓方法时死活一直报错xxx  NPObject一堆错误.写了一个测试页面 ...

  6. moviepy AudioClip的max_volume方法报错ValueError: operands could not be broadcast together with shapes(2,)

    ☞ ░ 前往老猿Python博文目录 ░ 在<moviepy音视频剪辑:AudioClip的max_volume方法报TypeError: bad operand type for abs(): ...

  7. SpringBoot关于SpringDataJpa中findOne()方法报错问题

    问题描述: 首先用的SpringDataJPA的1.11版本,可以使用findOne()方法根据id查询 然后我使用了2.0.5版本,发现findOne()方法报错了,不能用来当作根据id查询了. 当 ...

  8. jquery 重写 ajax提交并判断权限后 使用load方法报错解决方法

    jQuery(function ($) {    // 备份jquery的ajax方法        var _ajax = $.ajax;    // 重写ajax方法,先判断登录在执行succes ...

  9. Node.js中读取文件后用Json.parse方法报错

    今天,在调试一个node项目时,发现了一个很大的坑,在此分享给大家! 大家都知道,Json.parse()方法对格式要求是很严格的,格式不对极其容易报错,但是有时候格式看似是正确的也会报错. 比如这一 ...

随机推荐

  1. Spring boot 2.x 中使用redis

    一.添加Maven  依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifac ...

  2. Java--对象与类(二)

    final 实例域 可以将实例域定义为final.构建对象时必须初始化这样的域.也就是说在一个构造器执行之后,这个域被设置,并且之后无法对其修改 final 修饰符大多应用于基本(primitive) ...

  3. Microsoft Cortana移动版除美国市场外不再可用

    导读 先前已经透露,Microsoft Cortana的移动版本已不复存在.目前,Microsoft Cortana在移动设备上的多个国家和地区中支持多种语言.微软的Cortana移动版本不再支持的市 ...

  4. notepad++一次去掉所有空行,然后加上2个空行

    打开替换窗口,查找我的目标中填写: ^\r\n 替换为中不填,空着, 点击全部替换按钮. 如何给所有行添加2行空行: 打开替换窗口,查找目标中填写: \r\n 替换为中填写: \r\n\r\n\r\n ...

  5. 使用mysql服务实现负载均衡

    mysql 长连接(tcp协议)模拟负载均衡 1.存在member,member的port与mysql服务port一致为3306 2.vip绑定浮动ip 3.开启mysql服务: #service m ...

  6. 学习不一样的vue实战(2): 项目分析

    学习不一样的vue实战(2): 项目分析 首先 首发博客: 我的博客 项目源码: 源码(喜欢请star) 项目预览: 预览 上一章: <学习不一样的vue(1)实战:环境搭建> 我的Q群: ...

  7. Redis有序集合类型

    命令 增加元素 ZADD score member [score member ...] > ZADD scoreboard 89 Tom 76 Peter 100 David (integer ...

  8. 新闻网大数据实时分析可视化系统项目——13、Cloudera HUE大数据可视化分析

    1.Hue 概述及版本下载 1)概述 Hue是一个开源的Apache Hadoop UI系统,最早是由Cloudera Desktop演化而来,由Cloudera贡献给开源社区,它是基于Python ...

  9. VUE框架下安装自带http协议

    在控制台CMD 中输入 npm install vue-resource --save-dev

  10. Calendar 时间类的应用

    Date 类最主要的作用就是获得当前时间,同时这个类里面也具有设置时间以及一些其他的功能,但是由于本身设计的问题,这些方法却遭到众多批评,不建议使用,更推荐使用 Calendar 类进行时间和日期的处 ...