安卓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()方法对格式要求是很严格的,格式不对极其容易报错,但是有时候格式看似是正确的也会报错. 比如这一 ...
随机推荐
- Unity初步 基本拼图实现
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; ...
- Go的WaitGroup
goroutine使用方便,但是如果不加以处理一般会deadlock,因为goroutine配合Chanel的话只能是一进一出,否则就会卡在那里.下面一个示例就是利用这个WaitGroup处理这种死锁 ...
- 学习笔记(16)- InsuranceQA_zh
仓库地址:https://github.com/l11x0m7/InsuranceQA_zh Convolutional Neural Network for Chinese InsuranceQA ...
- 第1节 Scala基础语法:14、15、list集合练习
package cn.itcast.collect /** *作业题 */object ListTest { def main(args: Array[String]): Unit = { //创建一 ...
- C++11 — lambda表达式(匿名函数)
C++11中lambda表达式的基本语法格式为: [capture](parameters) -> return_type { /* ... */ } 其中 [] 内为外部变量的传递方式: [] ...
- HIHOcoder编程总结
[Offer收割]编程练习赛44 对于第一题题目1 : 扫雷游戏,首先要想清楚思路,虽然是暴力算法,但是这八个方向要自己把坐标写正确,不要慌乱,自己写的时候就写错了一个,第二个就是判断的时候,j + ...
- redhat 7.6 网络配置
网卡配置目录 /etc/sysconfig/network-scripts/ 关闭网卡 $$ 打开网卡 ifdown ensp8 && ifup ensp8 重启网卡服务 servic ...
- package.json中一些配置项的含义
{ "name": "webpack-demo", "version": "1.0.0", "de ...
- 移动端禁止缩放<meta>
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale= ...
- 使用JNA替代JNI调用本地方法
JNA全称是Java Native Access,是Sun推出的一种调用本地方法技术,比起它的同门师兄JNI,JNA大大简化了调用本地方法的过程,使用也比较方便, JNA是在JNI的基础上完善的,用青 ...