fragment跳转

activity的布局代码:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:gravity="center" tools:context="com.example.wdh.fragmentwork.MainActivity"> <LinearLayout android:id="@+id/show" android:layout_width="match_parent" android:layout_height="261dp" android:orientation="vertical"> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:gravity="center_horizontal"> <Button android:id="@+id/btnshow" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:onClick="onClick" android:text="@string/btnshow" /> </LinearLayout> </LinearLayout>

Firstfragment

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.wdh.fragmentwork.FirstFragment"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:text="@string/First" /> </FrameLayout>

secondfregment

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.wdh.fragmentwork.ScondFragment"> <!-- TODO: Update blank fragment layout --> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:text="@string/Second" /> </FrameLayout>

运行代码:

package com.example.wdh.fragmentwork; import android.app.FragmentManager; import android.app.FragmentTransaction; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.KeyEvent; import android.view.View; import android.widget.Toast; public class MainActivity extends AppCompatActivity implements View.OnClickListener { FirstFragment firstFragment; ScondFragment scondFragment; private boolean Y = true; private boolean N = false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); FragmentManager manager = getFragmentManager(); FragmentTransaction transaction = manager.beginTransaction(); firstFragment = new FirstFragment(); transaction.add(R.id.show, firstFragment); transaction.commit(); } @Override public void onClick(View v) { if (v.getId() == R.id.btnshow) ; Y = true; if (N) { FragmentManager manager = getFragmentManager(); FragmentTransaction transaction = manager.beginTransaction(); if (scondFragment == null) { scondFragment = new ScondFragment(); transaction.replace(R.id.show, scondFragment); transaction.commit(); Y = false; } else { transaction.replace(R.id.show, scondFragment); transaction.commit(); Y = false; } } else { Toast.makeText(this, "This is second fragment", Toast.LENGTH_SHORT).show(); } } } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (event.getKeyCode() == KeyEvent.KEYCODE_BACK && N) { FragmentManager manager = getFragmentManager(); FragmentTransaction transaction = manager.beginTransaction(); Y = true; N = false; transaction.replace(R.id.show, firstFragment); transaction.commit(); return false; } else { finish(); } return super.onKeyDown(keyCode, event); }

时间: 2024-08-02 15:12:41

fragment跳转的相关文章

[转]Fragment跳转至Activity或者Fragment

1.Fragment跳转至Activity 从fragment中跳转和从activity中跳转类似,只不过你要先通过fragment的getActivity方法获取到显示这个fragment的activity,具体代码是这样的: Button button = view.findViewById(xxx); button.setOnClickListener(new View.OnClickListener(     onClick(View view) {         startActiv

android fragment 跳到另一个fragment

一共有4个fragment,分别是contact(联系人),friends(朋友),search(查找),more(更多).使用的都是同一个布局,每个fragment中都有四个内部按钮,可以切换到其他的3个fragment中. 现在只考虑在contact中,实现点4个(其实有效的是3个),切换到其他3个fragment中. 现在的情况是,点击contactfragment中的按钮,toast会响应,但是fragment不会跳转.这是怎么回事,下面是两个类的代码. 这是contactfragmen

安卓fragment跳转activity,fragment跳转fragment,activity跳转fragment

Activity中加载不同的fragment  / Fragment中加载不同的fragment 主Activity中加载(切换)多个fragment(也可以理解为activity跳转fragment)或主fragment中加载(切换)多个fragment Activity布局中要有一个fragment布局空间,比如id名为main_ FrameLayout 写两个fragment类继承自fragment,比如 fragmentaextends Fragment (这个里面加载你的view和写你

Android从Fragment跳转Activty

private static final int CHANGE = 200; //在Fragment声明context private Context context; @Override public void onAttach(Context context) { super.onAttach(context); this.context = context;//这个代码片段是必要的 } public void onAttach这个代码片段如果缺少的话会出现这样一个错误,这个错误之前找了很久

Android -------- 从一个Fragment跳转到另一个Fragment

##一.直接getActivity,使用activity的fragmenttransation的replace仿佛替换 private void changeToAnotherFragment(){         //如果是用的v4的包,则用getActivity().getSuppoutFragmentManager();         FragmentManager fm = getActivity().getFragmentManager();         //注意v4包的配套使用

Fragment跳转至Activity片段随笔

首先需要了解Fragment的生命周期 @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view=inflater.inflate(R.layout.XXXX, null);//这个就相当于你加的布局 TextView textview1=view.findviewbyid(R.id.xxx);//所以你的id都是基

Fragment跳转,同时实现Fragment

在使用getSupportFragmentManager().findFragmentByTag(tag)无法找到,返回为空,原因由于咋replace()时必须要将fragment放入到返回栈中. 保证调用以下方法:ft.addToBackStack(tag); /** * Example of starting nested fragment from another fragment: Fragment * newFragment = ManagerTagFragment.newInstan

Android高级编程笔记(七)两个Fragment简单跳转示例

在前两篇博文中分别介绍了Fragment得基础和Fragment的生命周期,然而说了这么多Fragment到底怎么用呢以及我们为什么要使用Fragment?本篇博文将主要探讨这两个问题,首先说下在APP中有这好好Activity,跳转起来有那么简单,我们为什么还要使用Fragment呢?这是因为Fragment相对Activity而言更加的轻量级,使用起来也更加灵活,在一个程序的内部界面切换,尽可能的用Fragment代替Activity会让我们的APP运行起来更加的流畅,更加的高效,同时也提高

fragment与activity及两个fragment之间的跳转实现

在近期的练手项目中,我们使用到了Android Fragment技术.在应用的交互中,我可能需要实现: 从当前的fragment跳转到另一个fragment 从当前的fragment跳转到一个activity中 从当前的activity跳转到一个fragment中 网上提供的思路较多,这里总结了一套自己的方法. 一.从当前的fragment跳转到另一个fragment 1.在相应fragment全局中声明fragment管理对象及事务对象. // Fragment管理对象 private Fra