您的位置:首页 > 移动开发 > Android开发

Android Activity加载Fragment的一般简易方法

2015-11-20 08:51 585 查看
Android Activity加载Fragment的一般简易方法

首先写一个布局,布局里面以FrameLayout布局为佳,
<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"
android:id="@+id/fragment"
tools:context="com.example.demo.MainActivity" >
</FrameLayout>


然后在上层java代码中创建Fragment进而replace上面的这个FrameLayout:

package com.example.demo;

import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

FragmentManager fm = this.getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.fragment, new MyFragment());

// addToBackStack添加到回退栈,addToBackStack与ft.add(R.id.fragment, new
// MyFragment())效果相当
// ft.addToBackStack("test");

ft.commit();
}

private static class MyFragment extends Fragment {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(android.R.layout.simple_list_item_1,
null);
return view;
}

@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
TextView text = (TextView) view.findViewById(android.R.id.text1);
text.setText("hello,world!");
}
}
}

如果使用FragmentTransaction的add而不是replace,那么与replcae情况下再加入addToBackStack结果相当。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: