关闭

Fragment对象的使用(一)

344人阅读 评论(0) 收藏 举报
分类:

(1)新建名称为fragment的Android项目。布局文件activity_main.xml的代码如下:

<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:id="@+id/layout1"
    android:orientation="vertical"
    android:gravity="center"     >
    

	<Button
	    android:id="@+id/btn01"
	    android:layout_width="wrap_content"
	    android:layout_height="wrap_content"
	    android:text="I am bttton"/>
</LinearLayout > 

新建布局文件layout1.xml如下:

<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"   >


	<Button
	    android:id="@+id/btn01"
	    android:layout_marginTop="50dp"
	    android:layout_width="wrap_content"
	    android:layout_height="wrap_content"
	    android:text="I am "
	    android:layout_centerHorizontal="true" 
	    android:layout_alignParentTop="true"/>
</LinearLayout>
新建布局文件layout2.xml如下:

<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"
    tools:context="${relativePackage}.${activityClass}" >

	<Button
	    android:id="@+id/btn02"
	    android:layout_width="wrap_content"
	    android:layout_height="wrap_content"
	    android:text="I"
	    android:layout_centerHorizontal="true" 
	    android:layout_alignParentTop="true"/>
   

</LinearLayout>
(2)新建两个自定义的Fragment对象:

fragment1.java:

package com.example.fragment;


import android.annotation.TargetApi;
import android.app.Fragment;
import android.os.Build;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

@TargetApi(Build.VERSION_CODES.HONEYCOMB)
public class fragment1 extends Fragment{
	
	private View view;
	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		view = inflater.inflate(R.layout.layout1, container, false);
		
		return view;
	}
}

fragment2.java:

package com.example.fragment;

import android.annotation.TargetApi;
import android.app.Fragment;
import android.os.Build;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

@TargetApi(Build.VERSION_CODES.HONEYCOMB)
public class fragment2 extends Fragment{
	
	private View view;
	@Override
	public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle saveInstanceState)
	{
		view=inflater.inflate(R.layout.layout2,container,false);
		return view;
	}
}

这两个Fragment对象的代码仅仅是关联的布局的文件不同

(3)文件MainActivity.Java的核心代码如下:

package com.example.fragment;



import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.app.Activity;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.Menu;
import android.widget.Button;

@TargetApi(Build.VERSION_CODES.HONEYCOMB)
@SuppressLint("NewApi")
public class MainActivity extends FragmentActivity {

	private Button button1;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		Inital();
		fragment1 fragment_1=new fragment1();
		fragment2 fragment_2=new fragment2();
		
		FragmentManager fm=this.getFragmentManager();
		FragmentTransaction	ft= fm.beginTransaction();
		ft.add(R.id.layout1,fragment_1);
		ft.add(R.id.layout1,fragment_2);
		ft.commit();
	
	}
}

这样就实现了基本的fragment对象。

注:方法inflate()有3个参数,第一个参数表示Fragment对象关联的是哪个XML布局文件,第二个参数是把这个XML文件转成的View对象放入container容器中,第三个参数表示是否把这个View对象追加到container参数的后面。我们的第三个参数写得是false。如果这个参数是true,则代码应该是:

public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		inflater.inflate(R.layout.layout1, container, true);
		return super.onCreateView(inflater, container, savedInstanceState);
运行项目,也会出现正确的结果。



0
0
查看评论

Fragment使用(一)

Fragment的使用记录
  • u012988843
  • u012988843
  • 2015-11-06 11:00
  • 332

activity和activity之间传递对象,fragment和fragment之间传递对象的方法

activity和activity之间传递对象,fragment和fragment之间传递对象的方法,当然从activity向fragment传递对象同样可以用。由于activity是不能new出来一个对象去调用 方法的,所以。我们就需要借助于handler来传递。但是handler本身也是不能传递...
  • meiwan123
  • meiwan123
  • 2016-12-21 18:47
  • 1310

静态加载fragment间的交互

现在以两个静态加载的fragment之间的交互为例; 想要实现的效果是:一个Activity中有两个fragment,其中fragment01中有一个EditText对象和一个Button对象;建立Button对象的事件监听,获取EditText对象的内容,然后发送给fragment02,并在fr...
  • vrinux
  • vrinux
  • 2015-03-05 13:47
  • 726

Android Fragment 的使用,一些你不可不知的注意事项

Fragment,俗称碎片,自 Android 3.0 开始被引进并大量使用。然而就是这样耳熟能详的一个东西,在开发中我们还是会遇见各种各样的问题,层出不穷。所以,是时候总结一波了
  • wenbitianxiafeng
  • wenbitianxiafeng
  • 2016-12-15 16:41
  • 3260

android Fragment 与 Fragment 之间传参(对象)

传输自定义对像的实体类需要实现 parcelable接口同时要在实体类中 创建  Creator 对象 这个个东西 一个是起来写的作用 另外一个是起到读的作用。 实体类 import android.os.Parcel; import android.o...
  • qijian0503
  • qijian0503
  • 2015-04-27 19:06
  • 1469

Fragment之间使用Bundle传递对象,数据,序列化,集合

首先将对象序列化 序列化的作用 1)永久性保存对象,保存对象的字节序列到本地文件中; 2)通过序列化对象在网络中传递对象; 3)通过序列化在进程间传递对象。 两种方法序列化. 一是实现Serializable接口(是JavaSE本身就支持的),implement Seriali...
  • qq_27853161
  • qq_27853161
  • 2017-02-23 13:51
  • 1620

fragment中使用recycleView报nullpoint错误

报错代码一直提示是recycleView.setAdapter出错 空指针错误一般为变量名没有实例化造成的 查看了一下代码  adapter明显有实例化 为何会没有实例化呢   突然想到我的实例化代码写在了fragment的onCreatAr()中,由于并acti...
  • bluer1244
  • bluer1244
  • 2015-08-27 20:34
  • 737

FragmentTabHost添加Fragment后获取Fragment对象

在项目中遇到该问题,顺便记录一下: FragmentTabHost mFragmentTabHost = findViewById(R.id.frag_tab_host); String frgTag = mFragmentTabHost.getCurrentTabTag(); CustomF...
  • alinvince
  • alinvince
  • 2016-12-17 17:28
  • 1094

Fragment事务详解

Fragment事务详解(注意remove, detach, hide的区别,hide可以避免实例的新建和View的重绘)
  • afanyusong
  • afanyusong
  • 2015-05-01 20:03
  • 544

获取当前ViewPager里面的Fragment对象

文章参考网址:http://stackoverflow.com/questions/7379165/update-data-in-listfragment-as-part-of-viewpager
  • u011198764
  • u011198764
  • 2014-10-31 14:51
  • 2565
    个人资料
    • 访问:56108次
    • 积分:1555
    • 等级:
    • 排名:千里之外
    • 原创:94篇
    • 转载:15篇
    • 译文:0篇
    • 评论:6条
    博客专栏
    算法

    文章:0篇

    阅读:0
    最新评论