我们先来写个接口:

package com.xiayiye.yhsh.fragmentreplace;import android.os.Bundle;/*** @author :下一页5(轻飞扬)*         创建时间:2018/6/7.10:01*/
public interface PaymentListener {/*** 跳转已绑卡页面**/void goToBindCardPage();/*** 跳转未绑卡页面*/void goToNOBindCardPage();
}

再来写个activity

package com.xiayiye.yhsh.fragmentreplace;import android.support.v4.app.FragmentManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.widget.Toast;public class MainActivity extends AppCompatActivity implements PaymentListener {private FragmentManager mFragmentManager;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mFragmentManager = getSupportFragmentManager();mFragmentManager.beginTransaction().replace(R.id.fl_common_payment_replace, PaymentFragment.newInstance()).commit();Toolbar commonPaymentTitle = findViewById(R.id.tv_common_payment_title);commonPaymentTitle.setOnClickListener(v -> close());}private void close() {int backStackEntryCount = mFragmentManager.getBackStackEntryCount();if (backStackEntryCount == 0) {finish();return;}mFragmentManager.popBackStackImmediate();}@Overridepublic void goToBindCardPage() {mFragmentManager.beginTransaction().replace(R.id.fl_common_payment_replace, YhshPayFragment.newInstance()).addToBackStack(null).commit();}@Overridepublic void goToNOBindCardPage() {//跳转到绑定银行卡页面Toast.makeText(this,"跳转添加银行卡页面",Toast.LENGTH_LONG).show();mFragmentManager.beginTransaction().replace(R.id.fl_common_payment_replace, PaymentFragment.newInstance()).addToBackStack(null).commit();}
}

再来写两个fragment进行fragment替换跳转效果跟activity一样

fragment1

package com.xiayiye.yhsh.fragmentreplace;import android.content.Context;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.Toast;import java.util.HashMap;/*** 付款页面** @author 轻飞扬*/
public class PaymentFragment extends Fragment {Bundle bundle = new Bundle();private Context mContext;private PaymentListener paymentListener;private View convertView;private EditText etTitle;private EditText etBody;private EditText etTotalFee;private EditText etMerchantId;private EditText etPlatformMerchantId;private EditText etUnCreditCode;private EditText memberId;public PaymentFragment() {}/*** 构造函数*/public static PaymentFragment newInstance() {return new PaymentFragment();}@Overridepublic View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {convertView = inflater.inflate(R.layout.fragment_payment, container, false);etTitle = convertView.findViewById(R.id.et_title);etBody = convertView.findViewById(R.id.et_body);memberId = convertView.findViewById(R.id.et_member_id);etTotalFee = convertView.findViewById(R.id.et_total_fee);etMerchantId = convertView.findViewById(R.id.et_merchant_id);etPlatformMerchantId = convertView.findViewById(R.id.et_platform_merchant_id);etUnCreditCode = convertView.findViewById(R.id.et_un_credit_code);convertView.findViewById(R.id.bt_Yhsh_pay).setOnClickListener(v -> queryBindCardList());return convertView;}private void queryBindCardList() {String trimEtTitle = etTitle.getText().toString().trim();String trimEtBody = etBody.getText().toString().trim();String trimMemberId = memberId.getText().toString().trim();String trimEtTotalFee = etTotalFee.getText().toString().trim();String trimEtMerchantId = etMerchantId.getText().toString().trim();String trimEtPlatformMerchantId = etPlatformMerchantId.getText().toString().trim();String trimEtUnCreditCode = etUnCreditCode.getText().toString().trim();if (!TextUtils.isEmpty(trimEtTitle) &&!TextUtils.isEmpty(trimEtBody) &&!TextUtils.isEmpty(trimMemberId) &&!TextUtils.isEmpty(trimEtTotalFee) &&!TextUtils.isEmpty(trimEtMerchantId) &&!TextUtils.isEmpty(trimEtPlatformMerchantId) &&!TextUtils.isEmpty(trimEtUnCreditCode)) {bundle.putString("trimEtTitle", trimEtTitle);bundle.putString("trimEtBody", trimEtBody);bundle.putString("trimMemberId", trimMemberId);bundle.putString("trimEtTotalFee", trimEtTotalFee);bundle.putString("trimEtMerchantId", trimEtMerchantId);bundle.putString("trimEtPlatformMerchantId", trimEtPlatformMerchantId);bundle.putString("trimEtUnCreditCode", trimEtUnCreditCode);HashMap<String, String> datas = new HashMap<>();datas.put("charset", "utf-8");datas.put("member_no", trimMemberId);paymentListener.goToBindCardPage();} else {Toast.makeText(getContext(), "账号不能为空", Toast.LENGTH_LONG).show();}}@Overridepublic void onAttach(Context context) {super.onAttach(context);mContext = context;if (context instanceof PaymentListener) {paymentListener = (PaymentListener) context;} else {throw new RuntimeException(context.toString()+ " must implement PaymentListener");}}}

fragment2

package com.xiayiye.yhsh.fragmentreplace;import android.content.Context;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.content.ContextCompat;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;/*** 付款页面** @author 轻飞扬*/
public class YhshPayFragment extends Fragment {private TextView paymentBankEndNumber;private PaymentListener paymentListener;private Context mContext;public YhshPayFragment() {}/*** 构造函数*/public static YhshPayFragment newInstance() {return new YhshPayFragment();}@Overridepublic View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {View inflate = View.inflate(getContext(), R.layout.fragment_Yhsh_payment, null);paymentBankEndNumber = inflate.findViewById(R.id.tv_payment_bank_end_number);Button btn_sure_payment = inflate.findViewById(R.id.btn_sure_payment);textInsertImage(paymentBankEndNumber, R.mipmap.bank_card);TextView paymentPhone = inflate.findViewById(R.id.tv_payment_phone);TextView tvPaymentMoney = inflate.findViewById(R.id.tv_payment_money);paymentBankEndNumber.setText("信用卡(尾号5586)");tvPaymentMoney.setText("¥ " + 5);paymentPhone.setText("18888888888");btn_sure_payment.setOnClickListener(v -> goTo());return inflate;}private void goTo() {Toast.makeText(getContext(),"跳转",Toast.LENGTH_LONG).show();paymentListener.goToNOBindCardPage();}private void textInsertImage(TextView mineSettingTv, int left) {Drawable drawableLeft = ContextCompat.getDrawable(getContext(), left);//第一0是距左边距离,第二0是距上边距离,50分别是长宽drawableLeft.setBounds(0, 0, 45, 45);//只放左边mineSettingTv.setCompoundDrawables(drawableLeft, null, null, null);}@Overridepublic void onAttach(Context context) {super.onAttach(context);mContext = context;if (context instanceof PaymentListener) {paymentListener = (PaymentListener) context;}}}

贴出相应的xml文件

activity的布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><android.support.v7.widget.Toolbarandroid:id="@+id/tv_common_payment_title"android:layout_width="match_parent"android:layout_height="50dp"android:background="@android:color/white"app:navigationIcon="@mipmap/mine_bill_back_iv"app:title="测试跳转"app:titleTextAppearance="@style/Toolbar.TitleText" /><Viewandroid:layout_width="match_parent"android:layout_height="0.5dp"android:background="@drawable/divider_horizontal" /><FrameLayoutandroid:id="@+id/fl_common_payment_replace"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1" />
</LinearLayout>

fragment1的布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center"android:orientation="vertical"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center"android:orientation="vertical"><!-- 商品名 --><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginLeft="10dp"android:orientation="horizontal"><TextViewandroid:id="@+id/tv_title"android:layout_width="80dp"android:layout_height="40dp"android:gravity="center_vertical"android:text="商品名"android:textColor="#000"android:textSize="15sp" /><EditTextandroid:id="@+id/et_title"android:layout_width="240dp"android:layout_height="40dp"android:background="@null"android:gravity="center_vertical"android:hint="请在此添加商品名"android:text="春风十里"android:textSize="15sp" /></LinearLayout><!-- 描述 --><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginLeft="10dp"android:orientation="horizontal"><TextViewandroid:id="@+id/tv_body"android:layout_width="80dp"android:layout_height="40dp"android:gravity="center_vertical"android:text="商品描述"android:textColor="#000"android:textSize="15sp" /><EditTextandroid:id="@+id/et_body"android:layout_width="240dp"android:layout_height="40dp"android:background="@null"android:gravity="center_vertical"android:hint="请在此添加商品描述"android:text="不如你"android:textSize="15sp" /></LinearLayout><!-- 金额 --><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginLeft="10dp"android:orientation="horizontal"><TextViewandroid:id="@+id/tv_fee_total"android:layout_width="80dp"android:layout_height="40dp"android:gravity="center_vertical"android:text="应付金额"android:textColor="#000"android:textSize="15sp" /><EditTextandroid:id="@+id/et_total_fee"android:layout_width="240dp"android:layout_height="40dp"android:background="@null"android:gravity="center_vertical"android:hint="请在此输入金额(分)"android:inputType="numberDecimal"android:maxLength="9"android:text="1"android:textSize="15sp" /></LinearLayout><!-- 会员号 --><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginLeft="10dp"android:orientation="horizontal"><TextViewandroid:id="@+id/tv_member_id"android:layout_width="80dp"android:layout_height="40dp"android:gravity="center_vertical"android:text="会员号"android:textColor="#000"android:textSize="15sp" /><EditTextandroid:id="@+id/et_member_id"android:layout_width="240dp"android:layout_height="40dp"android:background="@null"android:gravity="center_vertical"android:hint="请在此输入会员号"android:text="200100000006109"android:textSize="15sp" /></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginLeft="10dp"android:orientation="horizontal"><TextViewandroid:id="@+id/tv_merchant_id"android:layout_width="80dp"android:layout_height="40dp"android:gravity="center_vertical"android:text="商户号"android:textColor="#000"android:textSize="15sp" /><EditTextandroid:id="@+id/et_merchant_id"android:layout_width="240dp"android:layout_height="40dp"android:background="@null"android:gravity="center_vertical"android:hint="请在此输入商户号"android:text="100000000071531"android:textSize="15sp" /></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginLeft="10dp"android:orientation="horizontal"><TextViewandroid:id="@+id/tv_platform_merchant_id"android:layout_width="80dp"android:layout_height="40dp"android:gravity="center_vertical"android:text="平台商户号"android:textColor="#000"android:textSize="15sp" /><EditTextandroid:id="@+id/et_platform_merchant_id"android:layout_width="240dp"android:layout_height="40dp"android:background="@null"android:gravity="center_vertical"android:hint="请输入平台商户号"android:text="100000000300000"android:textSize="15sp" /></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginLeft="10dp"android:orientation="horizontal"><TextViewandroid:id="@+id/tv_un_credit_code"android:layout_width="80dp"android:layout_height="40dp"android:gravity="center_vertical"android:text="店铺信用码"android:textColor="#000"android:textSize="15sp" /><EditTextandroid:id="@+id/et_un_credit_code"android:layout_width="240dp"android:layout_height="40dp"android:background="@null"android:gravity="center_vertical"android:hint="请在此输入店铺信用码"android:text="92500101MA5UBY8T40TEST01"android:textSize="15sp" /></LinearLayout><Buttonandroid:id="@+id/bt_Yhsh_pay"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_margin="10dp"android:layout_marginTop="10dp"android:background="@android:color/holo_blue_light"android:text="点击支付"android:textSize="15sp" /><TextViewandroid:id="@+id/tv_result"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_margin="20dp"android:textColor="#000"android:textSize="13sp" /></LinearLayout><FrameLayoutandroid:id="@+id/payment_replace"android:layout_width="match_parent"android:layout_height="match_parent" /></RelativeLayout>

fragment2的布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@null"android:orientation="vertical"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:background="@android:color/white"android:orientation="horizontal"android:padding="13dp"><TextViewandroid:id="@+id/tv_payment_value"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="应付金额"android:textColor="@android:color/black" /><TextViewandroid:id="@+id/tv_payment_money"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginLeft="50dp"android:text="¥5.2"android:textColor="@android:color/holo_red_light" /></LinearLayout><Viewandroid:layout_width="match_parent"android:layout_height="0.5dp"android:background="@android:color/darker_gray" /><Viewandroid:layout_width="match_parent"android:layout_height="0.5dp"android:layout_marginTop="13dp"android:background="@android:color/darker_gray" /><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:background="@android:color/white"android:orientation="horizontal"android:padding="13dp"><TextViewandroid:id="@+id/tv_payment_bank_end_number"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:drawablePadding="10dp"android:text="(尾号8842)"android:textColor="@android:color/black" /><TextViewandroid:id="@+id/tv_payment_change_bankcard"android:layout_width="wrap_content"android:layout_height="wrap_content"android:clickable="true"android:focusable="true"android:text="更换"android:textColor="#2978CF" /></LinearLayout><Viewandroid:layout_width="match_parent"android:layout_height="0.5dp"android:background="@android:color/darker_gray" /><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:background="@android:color/white"android:orientation="horizontal"android:padding="13dp"><TextViewandroid:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:gravity="center|left"android:text="手机号"android:textColor="@android:color/black" /><TextViewandroid:id="@+id/tv_payment_phone"android:layout_width="wrap_content"android:layout_height="wrap_content"android:gravity="center"android:text="18888888888"android:textColor="@android:color/black" /></LinearLayout><Viewandroid:layout_width="match_parent"android:layout_height="0.5dp"android:background="@android:color/darker_gray" /><Buttonandroid:id="@+id/btn_sure_payment"android:layout_width="match_parent"android:layout_height="44dp"android:layout_margin="30dp"android:background="@android:color/holo_blue_light"android:enabled="true"android:text="确认支付"android:textColor="@android:color/white" />
</LinearLayout>

这里面用到了lambda表达式-Java8新特性

如果报错请在你项目的gradle里面添加下面三行代码,然后选择Java8

compileOptions {sourceCompatibility JavaVersion.VERSION_1_8targetCompatibility JavaVersion.VERSION_1_8
}

如何选择Java8请看动图:

是这么简单一个activity完事多个fragment进行跳转

如果有看不懂的请下载源码查看即可:点击下载源码

Android开发之fragment之replace用法相关推荐

  1. Android开发之Fragment与Activity的数据交互通过回调机制实现(源代码分享)

    上一篇文章简单介绍了Android的回调机制的使用,这一篇博文将重点介绍Fragment碎片与activity的数据交互,fragment在Android开发中起着至关重要的作用,通过官方Androi ...

  2. Android开发之fragment传递参数的两种方法

    非常简单一种是通过bundle,另外一种是通过fragment提供的instantiate(过时方法),都是kotlin版本,直接上代码吧: 方法一: //fragment传递参数方法一val fra ...

  3. Android studio实现底部导航,Android 开发之BottomBar+ViewPager+Fragment实现炫酷的底部导航效果...

    BottomBar BottomBar是Github上的一个开源框架,因为从1.3.3开始不支持fragments了,要自己配置,弄了很久,不管是app的fragment还是V4 的程序总是总是闪退. ...

  4. android布局黑色字体颜色,Android开发之FloatingActionButton悬浮按钮基本使用、字体、颜色用法示例...

    本文实例讲述了Android开发之FloatingActionButton悬浮按钮基本使用.字体.颜色用法.分享给大家供大家参考,具体如下: 这里主要讲: FloatingActionsMenu自定义 ...

  5. Android开发之ViewPager+ActionBar+Fragment实现响应式可滑动Tab

    今天我们要实现的这个效果呢,在Android的应用中十分地常见,我们可以看到下面两张图,无论是系统内置的联系人应用,还是AnyView的阅读器应用,我们总能找到这样的影子,当我们滑动屏幕时,Tab可以 ...

  6. Android开发之TextView高级应用

    Android开发之TextView高级应用 我们平时使用TextView往往让它作为一个显示文字的容器,但TextView的功能并不局限于此.以下就和大家分享一下TextView的一些使用技巧. A ...

  7. android之json解析优化,Android开发之json解析

    目前正在尝试着写app,发现看懂代码和能写出来差距很大,最关键的是java基础比较的差,因为只会python,java基础只学习了一个礼拜就过了.感觉java写出来的代码不如python简单明了. 上 ...

  8. android md5加密登录,Android开发之MD5加密

    将字符串进行MD5加密,返回加密后的字符串 public static String encode(String password) { try { StringBuffer sb = new Str ...

  9. Android开发之BroadcastReceiver

    Android开发之BroadcastReceiver BroadcastReceiver介绍 广播的种类 标准广播(Normal Broadcast) 有序广播(Ordered Broadcast) ...

最新文章

  1. 判断一个字符串是否是由另2个字符串交错组成的
  2. ITK:迭代图像中的区域,而无需写访问权即可访问索引
  3. Qt Qwdget 汽车仪表知识点拆解4 另类进度条实现
  4. Twitter 有权删除去世用户的账号吗?
  5. 如何检查PHP数组是关联数组还是顺序数组?
  6. 谈谈象棋的基本功《二》复盘篇
  7. 屏幕录制软件有哪些?4款超好用录屏软件下载,强烈推荐
  8. HTML制作个简单的网页
  9. 玩世不恭----进阶篇
  10. ios开发eaaccessory案例_iOS App 连接外设的几种方式
  11. 解决安卓刷新recyclerView时导致itemDecoration分栏标题绘制错乱(重叠和隔空现象)
  12. 网站使用CDN加速的5个优势
  13. JS学习笔记 - Extends
  14. Fiddler跟F12
  15. 什么是CPA?如何通过CPA推广模式赚钱呢?
  16. 使用electron-vue开发公式编辑器
  17. 小说《肖申克的救赎》的优秀读后感2600字
  18. Element-ui配合Vue实现走马灯图片自适应效果
  19. MPU6500功能说明
  20. 键入1-5输出对应的礼拜天

热门文章

  1. 2023届IC实习小结
  2. 电路常识性概念(5)-上拉电阻、下拉电阻 / 拉电流、灌电流 / 扇出系数
  3. c语言程序设计考试改革,C语言程序设计课程考试改革实施方案.pdf
  4. python异常处理的作用_python之路——异常处理
  5. python3性能还低吗_谁说Python性能差的?-- 让python比awk快 (3)
  6. USACO1.1.2|贪婪的送礼者
  7. html Window与document区别(轉)
  8. C#连接Sqlite 出现:混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集。的解决方案...
  9. 网站权限问题要重视-维护服务器后的看法
  10. C# 多页打印简单实现