Domanda

Ho una visualizzazione personalizzata in src> myproject.test> HomeView

Nel mio principale XML di layout ho il seguente:

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

    <myproject.test.HomeView
        android:id="@+id/home_view"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        >
    </myproject.test.HomeView>

</LinearLayout>

Nel HomeActivity ho una chiamata come questo nel metodo onCreate.

setContentView(R.layout.main);
HomeView mHomeView = (HomeView) this.findViewById(R.id.home_view);

La forza di applicazione chiusa quando il metodo setContentView viene chiamato. Sembra che il mio xml principale non è corretta.

Tutte le idee?

È stato utile?

Soluzione

Vuoi dire la sua non arrivare alla

HomeView mHomeView = (HomeView) this.findViewById(R.id.home_view);

e schiantarsi sulla linea prima di esso?

Controlla se il tuo costruttore è

HomeView(final Context context, final AttributeSet attrs){
     super(context, attrs);

e non

HomeView(final Context context){
     super(context);

è necessario l'AttributeSet

Altri suggerimenti

Controlla i costruttori che gli attrezzi HomeView:

 public HomeView(Context context, AttributeSet atts) {
     super(context, atts); 
 } 
<LinearLayout xmlns:android = 
      http://schemas.android.com/apk/res/android"
    android:id="@+id/home_root"
    android:orientation="vertical"

Nessuno dei miei layout hanno @+id. Forse si dovrebbe impostare la visualizzazione a home_root. Verificare con te R.java per il nome del layout, o provare

setContentView(R.layout.home_root);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top