Я пытаюсь создать музыкальный проигрыватель, который будет виден во всех моих действиях.Чтобы сделать это, я собираюсь использовать Fragment
, как некоторые из вас советовали мне ранее.
Поскольку у меня нет опыта работы с Fragments
, я решил реализовать фрагмент в «наполнителе»активность в первую очередь.Я создал простой фрагмент, содержащий только кнопку и некоторый текст, и попытался раздувать это в своей активности наполнителя.
Однако после надувания этот фрагмент не появляется.В LogCat распечатывается сообщение о том, что фрагмент надувается.
Я почти уверен, что что-то упустил, но у меня нет опыта в этом, и я не смог найти учебник, которыйвполне объяснил, как это сделать, я не знаю, что мне не хватает.
Фрагмент музыкального проигрывателя
public class AppMusicPlayer extends Fragment{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
System.out.println("fragment added");
return inflater.inflate(R.layout.musicplayer_main, container, false);
}
}
Музыкальный проигрывательмакет
<?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="wrap_content"
android:orientation="vertical" >
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="This is the fragment you're looking for" />
</LinearLayout>
Активность наполнителя
public class Filler extends FragmentActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.filler);
Button b = (Button) findViewById(R.id.terug);
b.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
Intent intent = new Intent();
setResult(RESULT_OK, intent);
finish();
}
});
}
}
Макет наполнителя
<?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" >
<!-- Title bar -->
<RelativeLayout
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:background="@drawable/title_bar" >
<TextView
android:id="@+id/fillertitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="Work In Progress"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textStyle="bold" >
</TextView>
<Button
android:id="@+id/terug"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_centerVertical="true"
android:background="@drawable/button_back"
android:text="Back"
android:textColor="#FFFFFFFF"
android:textStyle="bold" >
</Button>
</RelativeLayout>
<!-- End of title bar -->
<TextView
android:id="@+id/wip"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="This section of the app has not been made yet. Work in progress." >
</TextView>
<fragment
android:id="@+id/musicPlayerFragment"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:name="com.mobowski.app.player.AppMusicPlayer" />
</LinearLayout>
Очевидно, я 'я делаю что-то не так, но что?
Примечание: Я использую Android 2.3 с библиотекой совместимости.
Любая помощь приветствуется
Проблема была исправлена с помощью Yashwanth Kumar и blessenm.Один дал решение XML, другой - программное решение.Теперь мне просто интересно, какое решение является наиболее желательным.Есть ли какие-либо уступки, которые можно сделать с любым из решений, или все сводится к предпочтительному решению программиста?