Android从Fragment跳转到其他Activity的简单实例

为了更好的理解以下内容,我们需要简单了解一下Fragment的动态注册方法

Android——Fragment的静态注册和动态注册

为了实现从Fragment跳转到其他Activity,下面需要创建以下文件:

第一步:简单编写布局文件fragment_activity.xml和抽象类TemplateFragmentActivity.java代码如下:

fragment_activity.xml

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:id="@+id/temp_fragment_activity"
 android:layout_width="match_parent"
 android:layout_height="match_parent">
</FrameLayout>

fragment_activity.xml布局主要用于承载各fragment布局,例如fragment_one.xml和fragment_two.xml。

TemplateFragmentActivity.java

package com.example.myapplication;
import android.os.Bundle;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
public abstract class TemplateFragmentActivity extends AppCompatActivity
{
 private FragmentManager fm;
 private FragmentTransaction ts;
 private Fragment fragment;
 //抽象方法,用于创建Fragment实例
 protected abstract Fragment createFragment();
 @Override
 protected void onCreate(@Nullable Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.fragment_activity);
  fm = getSupportFragmentManager();
  ts = fm.beginTransaction();
  if (fragment == null){
   fragment = createFragment();
   ts.add(R.id.temp_fragment_activity,fragment);
   ts.commit();
  }
 }
}

第二步:分别使类FragmentOneActivity和FragmentTwoActivity继承类TemplateFragmentActivity并实现抽象方法createFragment()

FragmentOneActivity.java

package com.example.myapplication;
import androidx.fragment.app.Fragment;
public class FragmentOneActivity extends TemplateFragmentActivity {
 @Override
 protected Fragment createFragment() {
  return new FragmentOne();
 }
}

FragmentTwoActivity.java与FragmentOneActivity.java类似,不在重复。
第三步:分别编写fragment_one.xml和fragment_two.xml布局文件并通过编写FragmentOne.java和FragmentTwo.java绑定对应的布局文件,并实现其具体功能。

fragment_one.xml

<?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:gravity="center"
 android:background="@color/colorPrimaryDark"
 android:orientation="vertical">
 <TextView
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:gravity="center"
  android:text="点击下面的按钮跳转到FragmentTwoActivity"
  android:textSize="20sp"
  android:textAllCaps="false"
  android:textColor="#F70505">
 </TextView>
 <Button
  android:id="@+id/btn_fm_one"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="跳转"
  android:textSize="30dp"
  android:layout_marginTop="20dp">
 </Button>
</LinearLayout>

fragment_two.xml与fragment_one.xml类似,不在重复。

FragmentOne.java

package com.example.myapplication;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
public class FragmentOne extends Fragment {
 private Button mBtnFragmentOne;
 @Nullable
 @Override
 public View onCreateView(@NonNull LayoutInflater inflater,
        @Nullable ViewGroup container,
        @Nullable Bundle savedInstanceState) {
  View view = inflater.inflate(R.layout.fragment_one,container,false);
  mBtnFragmentOne = view.findViewById(R.id.btn_fm_one);
  mBtnFragmentOne.setOnClickListener(new View.OnClickListener() {
   @Override
   public void onClick(View v) {
    Intent intent = new Intent(getActivity(),FragmentTwoActivity.class);
    startActivity(intent);
   }
  });
  return view;
 }
}

Fragment跳转到Activity与Activity跳转到Activity方法类似,如下:

Intent intent = new Intent(getActivity(),FragmentTwoActivity.class);
startActivity(intent);

FragmentTwo.java与FragmentOne .java类似,不在重复。

演示·:

总结

以上所述是小编给大家介绍的Android从Fragment跳转到其他Activity的简单实例,希望对大家有所帮助!

(0)

相关推荐

  • Android Activity与Fragment之间的跳转实例详解

    Activity及Fragment之间的跳转 直接跳转 基本使用方法 public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void jump(Vie

  • Android 管理Activity中的fragments

    FragmentManager 为了管理Activity中的fragments,需要使用FragmentManager. 为了得到它,需要调用Activity中的getFragmentManager()方法. 因为FragmentManager的API是在Android 3.0,也即API level 11开始引入的,所以对于之前的版本,需要使用support library中的FragmentActivity,并且使用getSupportFragmentManager()方法. 用Fragme

  • Android 两个Fragment之间的跳转和数据的传递实例详解

    Android  两个Fragment之间的跳转和数据的传递实例详解 作为一个Android的菜鸟,前些天在做项目的时候用到了fragment,需求是从一个Fragment跳转到另一个Fragment,并且还要传递数据,就像Activity的跳转一样.在网上找了好久都没找到很好的列子,最后通过看别人的博客和查文档终于做好了,现在整理一下,希望能帮助有需要的童鞋. 1.首先在第一个Fragment 里面拿到FragmentManger 和FragmentTransaction 代码如下. @Ove

  • Android基础之Fragment与Activity交互详解

    今天继续讲解Fragment组件的特性,主要是跟Activity的交互和生命周期的关系,我们前面已经说过Fragment是依赖于Activity的,而且生命周期也跟Activity绑定一起.下面我们看看Fragment跟Activity的关系. 1.为Activity创建事件回调方法在一些情况下, 你可能需要一个fragment与activity分享事件. 一个好的方法是在fragment中定义一个回调的interface, 并要求宿主activity实现它.当activity通过interfa

  • Android编程使用Fragment界面向下跳转并一级级返回的实现方法

    本文实例讲述了Android编程使用Fragment界面向下跳转并一级级返回的实现方法.分享给大家供大家参考,具体如下: 1.首先贴上项目结构图: 2.先添加一个接口文件BackHandledInterface.java,定义一个setSelectedFragment方法用于设置当前加载的Fragment在栈顶,主界面MainActivity须实现此接口,代码如下: package com.example.testdemo; public interface BackHandledInterfa

  • Android从Fragment跳转到其他Activity的简单实例

    为了更好的理解以下内容,我们需要简单了解一下Fragment的动态注册方法 Android--Fragment的静态注册和动态注册 为了实现从Fragment跳转到其他Activity,下面需要创建以下文件: 第一步:简单编写布局文件fragment_activity.xml和抽象类TemplateFragmentActivity.java代码如下: fragment_activity.xml <?xml version="1.0" encoding="utf-8&qu

  • Android 复制文本内容到系统剪贴板的最简单实例(分享)

    这个例子很简单,直接上截图和代码. 布局文件activity_copy.xml代码如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layou

  • 基于Datatables跳转到指定页的简单实例

    因为项目用到Datatables发现在分页特别多时无法跳转到指定页,自己动手增加了#Datatables 跳转到指定页#功能,实现代码如下: table = $('#user-table').dataTable({ "bAutoWidth": false, "processing": true, "serverSide": true, "bStateSave":true, "pagingType": &qu

  • Android编程之基于Log演示一个activity生命周期实例详解

    本文实例讲述了Android编程之基于Log演示一个activity生命周期.分享给大家供大家参考,具体如下: 利用Android的Log 演示一个activity的生命周期 代码: //DemoActivity.java package uni.activity; /* @author octobershiner 2011 7 22 SE.HIT */ import android.app.Activity; import android.os.Bundle; import android.u

  • Android 中API之Drawable资源详解及简单实例

    Android 中API之Drawable资源 1.最常用的StateListDrawable 说StateListDrawable,很多Android猿可能感到不太熟悉,不过如果说selector选择器,肯定都会恍然大悟,不错,这两个东西就是同一个~~ 它的用途之广,每个app必用,下面就写一个demo,来简要说一下用法. 比如一个登陆界面,它的输入框在获取焦点时需要更改背景,登陆按钮在输入框中有内容时,则更改背景颜色,这时候用selector选择器,那就方便多了,效果如下: EditText

  • Android中将View的内容保存为图像的简单实例

    原理:创建一个新的Bitmap,然后再根据它来创建一个Canvas,最后调用View的draw方法将View画到Canvas上,这样得到的Bitmap就是我们想要的.代码: 复制代码 代码如下: public Bitmap createViewBitmap(View v) {        Bitmap bitmap = Bitmap.createBitmap(v.getWidth(), v.getHeight(),        Bitmap.Config.ARGB_8888);       

  • Android 中Fragment与Activity通讯的详解

    Android 中Fragment与Activity通讯的详解 与activity通讯 尽管fragment的实现是独立于activity的,可以被用于多个activity,但是每个activity所包含的是同一个fragment的不同的实例. Fragment可以调用getActivity()方法很容易的得到它所在的activity的对象,然后就可以查找activity中的控件们(findViewById()). 例如: ViewlistView =getActivity().findView

  • Android中fragment与activity之间的交互(两种实现方式)

    (未给Fragment的布局设置BackGound) 之前关于Android中Fragment的概念以及创建方式,我专门写了一篇博文<详解Android中Fragment的两种创建方式>,就如何创建Fragment混合布局做了详细的分析,今天就来详细说道说道Fragment与宿主Activity之间是如何实现数据交互的. 我们可以这样理解,宿主Activity中的Fragment之间要实现信息交互,就必须通过宿主Activity,Fragment之间是不可能直接实现信息交互的. Fragmen

  • Android中Fragment与Activity的生命周期对比

    Fragment必须是依存于Activity而存在的,因此Activity的生命周期会直接影响到Fragment的生命周期.官网这张图很好的说明了俩者的关系: 可以看到Fragment比Activity多了几个额外的生命周期回调函数: onAttach(Activity); //当Activity与Fragment发生关联时调用 onCreateView(LayoutInflater,ViewGroup,Bundle); //创建该Fragment的视图 onActivityCreate(bun

  • Android使用Fragment打造万能页面切换框架

    首先我们来回忆一下传统用Activity进行的页面切换,activity之间切换,首先需要新建intent对象,给该对象设置一些必须的参数,然后调用startActivity方法进行页面跳转.如果需要activity返回结果,则调用startActivityForResult方法,在onActivityResult方法中获得返回结果.此外,每一个要展示的activity需要在AndroidManifest.xml文件中注册.而且,如果在某些特定的情况下(比如65536方法数爆炸)要动态加载dex

随机推荐