较低API的Android Fragments

时间:2012-05-07 08:16:51

标签: android api android-fragments

我已经开始了解Android Fragments,但这对我来说仍然很困惑。我需要一些帮助。因为它说自API级别11以来支持android片段,但您可以下载“support.v4”库包用于较低级别的API。首先,我创建新的项目来尝试API级别15的片段。然后我做了同样的API级别8,它不起作用...我导入外部jar,它看到所有需要导入,因为它应该...似乎这是问题吗?

这是我的主要课程:

import android.support.v4.app.FragmentActivity;
import android.os.Bundle;

public class Fragment2Activity extends FragmentActivity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

我的主要布局XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />

        <fragment 
   android:name="com.frag.Fragment2.frag"
   android:id="@+id/frag"
   android:layout_width="match_parent"
   android:layout_height="match_parent" />

</LinearLayout>

我的片段类:

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class frag extends Fragment {
       @Override
       public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
          // Inflate the layout for this fragment
          View v = inflater.inflate(R.layout.hello_fragment, container, false);
          return v;
       }
    }

我的片段布局XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <TextView
   android:layout_width="fill_parent"
   android:layout_height="match_parent"
   android:text="THIS IS FRAGMENT"
   android:background="@drawable/ic_launcher"
/>

</LinearLayout>

固定

4 个答案:

答案 0 :(得分:6)

您仍在使用不存在的android.view.fragment类。您必须在旧设备上切换到android.support.v4.app.fragment

答案 1 :(得分:0)

如果由于minSdkVersion而使用较低的API,则应该知道可以使用最新的sdk并将minSdkVersion设置为较低的值。它们不一样。

答案 2 :(得分:0)

好的,所以我遇到了同样的问题,最后让它运转了。首先确保您拥有最新的ADT工具。

1)进入每个使用片段的活动,让它们从FragmentActivity而不是Activity延伸

2)如果您尚未将支持库导入构建中,请右键单击您的项目 - > Android工具 - >添加支持库

3)确保您的xml标签为<fragment />而不是<android.support.v4.app.fragment />

希望能帮助你,让我花一点时间让它发挥作用。

答案 3 :(得分:0)

实际上,这个问题来自ADT工具。

  1. 重新排序Java Build Path中的“Order and Export” src&gt; gen&gt;私人&gt;其他...

  2. 添加支持库&gt;&gt;机器人支撑-v4.jar