Estoy intentando crear un reproductor de música que será visible en todas mis actividades. Para hacer esto, voy a usar un Fragment
como algunos de ustedes me aconsejaron anteriormente.Fragmento no se muestra después de inflar [Solucionado, pero ...]
Como no tengo ninguna experiencia con Fragments
en absoluto, decidí implementar primero un fragmento en una actividad de "relleno". Creé un fragmento simple que contiene solo un botón y algo de texto, y trato de inflar eso en mi actividad de relleno.
Sin embargo, después de inflar este fragmento no aparece. Un mensaje se imprime en LogCat y me dice que el fragmento se ha estado inflando.
Estoy bastante seguro de que me falta algo, pero como no tengo experiencia con esto y no pude encontrar un tutorial que explicara cómo hacerlo, no sé qué es lo que hago. me falta
reproductor de música Fragmento diseño
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);
}
}
reproductor de música
<?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>
relleno Actividad
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();
}
});
}
}
relleno diseño
<?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>
Obviamente que estoy haciendo algo mal, pero ¿qué?
Nota: Estoy usando Android 2.3 con la biblioteca de compatibilidad.
Cualquier ayuda se agradece
El problema se ha solucionado con la ayuda de Yashwanth Kumar y blessenm. Uno dio una solución XML, el otro una solución programática. Ahora me pregunto qué solución es la más conveniente. ¿Hay alguna concesión que hacer con cualquiera de las soluciones, o todo se reduce a la solución preferida del programador?
Si solo usa un 'Fragmento' específico y nunca tiene la intención de cambiarlo, diría que sería preferible el modo xml. Si tiene la intención de intercambiar 'Fragmentos' cuando la aplicación se está ejecutando, agregando el' Fragmento' programáticamente podría ser conveniente controlar el flujo (p.sabes qué 'Fragmento' se muestra y con cuál intercambiar). – kaspermoerch
Muy bien, me quedaré con XML, ya que (al menos por ahora) el reproductor de música será el único 'Fragmento'. ¡Gracias por la respuesta! –