4

好吧,我开始了解 Android 片段,但这仍然让我感到困惑。我需要一点帮助。正如它所说,自 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

4 回答 4

6

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

于 2012-05-07T08:21:18.273 回答
0

如果您因为 minSdkVersion 而使用较低的 API,您应该知道您可以使用最新的 sdk 并将 minSdkVersion 设置为较低的值。它们不必相同。

于 2012-05-07T08:29:18.510 回答
0

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

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

2)如果您还没有将支持库导入到您的构建中,则右键单击您的项目->Android工具->添加支持库

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

希望对你有所帮助,我花了一段时间才让它工作。

于 2012-05-08T12:41:23.640 回答
0

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

  1. 通过 src > gen > Private > other ... 在 Java Build Path 中重新排序“Order and Export”

  2. 添加支持库 >> android-support-v4.jar

于 2013-09-04T03:19:49.840 回答