安卓fragment transaction add方法报错
这个问题百度了很多能用的很少!
原来看的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方法报错的更多相关文章
- appium+python自动化64-使用Uiautomator2执行driver.keyevent()方法报错解决
前言 未加'automationName': 'Uiautomator2'参数使用Uiautomator可以正常使用driver.keyevent()方法,使用Uiautomator2时driver. ...
- 项目实体类使用@Data注解,但是项目业务类中使用getA(),setA()方法报错,eclipse中配置lombok
@Data注解来源与Lombok,可以减少代码中大量的set get方法,大量减少冗余代码,但是今天部署项目时候,发现实体类使用@Data注解,但是项目业务类中使用getA(),setA()方法报错. ...
- eclipse中运行 main 方法报错,找不到类
eclipse (maven 项目)中运行 main 方法报错,找不到类 ** 发现:在 eclipse中的 "Marker" 控制面板中 ,发现问题所在 只要删除 maven 仓 ...
- 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,同样的 ...
- 桥接:JS调用安卓方法报错Uncaught Error: Error calling method on NPObject
说一说自己粗心踩到的一个不算坑的坑: 项目是安卓webview嵌入SPA单页应用页面,涉及到JS调用原生安卓方法,但就是在调用安卓方法时死活一直报错xxx NPObject一堆错误.写了一个测试页面 ...
- 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(): ...
- SpringBoot关于SpringDataJpa中findOne()方法报错问题
问题描述: 首先用的SpringDataJPA的1.11版本,可以使用findOne()方法根据id查询 然后我使用了2.0.5版本,发现findOne()方法报错了,不能用来当作根据id查询了. 当 ...
- jquery 重写 ajax提交并判断权限后 使用load方法报错解决方法
jQuery(function ($) { // 备份jquery的ajax方法 var _ajax = $.ajax; // 重写ajax方法,先判断登录在执行succes ...
- Node.js中读取文件后用Json.parse方法报错
今天,在调试一个node项目时,发现了一个很大的坑,在此分享给大家! 大家都知道,Json.parse()方法对格式要求是很严格的,格式不对极其容易报错,但是有时候格式看似是正确的也会报错. 比如这一 ...
随机推荐
- Spring boot 2.x 中使用redis
一.添加Maven 依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifac ...
- Java--对象与类(二)
final 实例域 可以将实例域定义为final.构建对象时必须初始化这样的域.也就是说在一个构造器执行之后,这个域被设置,并且之后无法对其修改 final 修饰符大多应用于基本(primitive) ...
- Microsoft Cortana移动版除美国市场外不再可用
导读 先前已经透露,Microsoft Cortana的移动版本已不复存在.目前,Microsoft Cortana在移动设备上的多个国家和地区中支持多种语言.微软的Cortana移动版本不再支持的市 ...
- notepad++一次去掉所有空行,然后加上2个空行
打开替换窗口,查找我的目标中填写: ^\r\n 替换为中不填,空着, 点击全部替换按钮. 如何给所有行添加2行空行: 打开替换窗口,查找目标中填写: \r\n 替换为中填写: \r\n\r\n\r\n ...
- 使用mysql服务实现负载均衡
mysql 长连接(tcp协议)模拟负载均衡 1.存在member,member的port与mysql服务port一致为3306 2.vip绑定浮动ip 3.开启mysql服务: #service m ...
- 学习不一样的vue实战(2): 项目分析
学习不一样的vue实战(2): 项目分析 首先 首发博客: 我的博客 项目源码: 源码(喜欢请star) 项目预览: 预览 上一章: <学习不一样的vue(1)实战:环境搭建> 我的Q群: ...
- Redis有序集合类型
命令 增加元素 ZADD score member [score member ...] > ZADD scoreboard 89 Tom 76 Peter 100 David (integer ...
- 新闻网大数据实时分析可视化系统项目——13、Cloudera HUE大数据可视化分析
1.Hue 概述及版本下载 1)概述 Hue是一个开源的Apache Hadoop UI系统,最早是由Cloudera Desktop演化而来,由Cloudera贡献给开源社区,它是基于Python ...
- VUE框架下安装自带http协议
在控制台CMD 中输入 npm install vue-resource --save-dev
- Calendar 时间类的应用
Date 类最主要的作用就是获得当前时间,同时这个类里面也具有设置时间以及一些其他的功能,但是由于本身设计的问题,这些方法却遭到众多批评,不建议使用,更推荐使用 Calendar 类进行时间和日期的处 ...