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