Фрагменты Android на более низком API

Я начинаю понимать Android Fragments, но это все еще запутывает для меня. Мне нужна небольшая помощь. Поскольку он говорит, что фрагменты Android поддерживаются с уровня API 11, но вы можете загрузить пакет библиотек «support.v4» для API более низкого уровня. Сначала я создаю новый проект, чтобы попробовать фрагменты на уровне API 15. Затем я сделал то же самое с уровнем API 8, и он не работает … Я импортировал внешнюю банку, и он видит все необходимые импортные данные, как это должно … Что, кажется, Проблема здесь?

Вот мой основной класс:

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> 

ИСПРАВЛЕНО

Вы по-прежнему используете класс android.view.fragment , которого не существует. Вы должны переключиться на android.support.v4.app.fragment на более старые устройства.

Если вы используете более низкий API из-за minSdkVersion, вы должны знать, что можете использовать последний sdk и установить minSdkVersion на более низкое значение. Они не должны быть одинаковыми.

На самом деле, эта проблема связана с инструментами ADT.

  1. Переупорядочить «Заказ и экспорт» в Java Build Path by src> gen> Private> other …

  2. Добавить библиотеку поддержки >> android-support-v4.jar

Хорошо, поэтому у меня была такая же проблема, и, наконец, она работала. Прежде всего убедитесь, что у вас есть новейшие инструменты ADT.

1) Перейдите во все действия, в которых используются фрагменты, и они распространяются из FragmentActivity вместо Activity

2) если вы не импортировали библиотеку поддержки в свою сборку, щелкните правой кнопкой мыши на своем проекте-> Инструменты Android-> Добавить библиотеку поддержки

3) убедитесь, что в вашем xml теги <fragment /> а не <android.support.v4.app.fragment />

Надеюсь, что это поможет вам, потребовалось некоторое время, чтобы заставить его работать.