Android 3.0 以下 使用Fragment 实例

首先在 Android 3.0以下使用 Fragment 要导入 android.support.v4 这份包,

例外在低版本中使用 Fragment 时,可能出现很多不好解决的错误。

一个非常可能的错误是:

import 高版本的Fragment包

还import 这个支持库。我想你会出现很多不可思意的错误。


另一个,是你要使用 FragmentManager 就 主Activity 必须继承 FragmentActivity


我们就先讨论这个,DialogFragment 这的使用和实现一 Dialog

本实例只为 最简化,清晰的理解 Fragment,固代码精简了很多。

源文件:

1.MainActivity.java

2.MyDialogFragment.java

3.activity_main.xml


1.MainActivity.java


package com.example.diafragment;

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.view.Menu;

public class MainActivity extends FragmentActivity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		
		setContentView(R.layout.activity_main);
		
		FragmentManager fm_1 = getSupportFragmentManager();
		
        MyDialogFragment mdf = new MyDialogFragment();
        
		FragmentTransaction ft_1 =  fm_1.beginTransaction();
		
		mdf.show(fm_1, "hello");		
		
		ft_1.commit();		
		
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		return true;
	}

}

2.MyDialogFragment.java

package com.example.diafragment;

import android.app.AlertDialog;
import android.app.Dialog;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;

public class MyDialogFragment extends DialogFragment {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }
    
    @Override
    public Dialog onCreateDialog(Bundle saveInstanceState){
    	AlertDialog.Builder builder =new AlertDialog.Builder(getActivity());
    	builder.setTitle("hello");
    	return builder.create();
    }
}

3.activity_main.xml

<FrameLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id ="@+id/leftView"
    android:background="#ff4500">
</FrameLayout>


源码现在地址:fragment.tar.gz


posted @ 2012-11-21 14:47  热血小伙  阅读(225)  评论(0编辑  收藏  举报