Android benutzerdefinierte Ansicht verursacht Kraft schließen
-
10-10-2019 - |
Frage
ich eine benutzerdefinierte Ansicht haben in src> myproject.test> Homeview
In meinem Haupt-Layout xml Ich habe folgende:
<?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>
In der HomeActivity habe ich einen Anruf, wie dies in der onCreate Methode.
setContentView(R.layout.main);
HomeView mHomeView = (HomeView) this.findViewById(R.id.home_view);
Die App Kraft geschlossen, wenn die setContentView Methode aufgerufen wird. Es scheint, dass mein Haupt xml nicht korrekt ist.
Irgendwelche Ideen?
Lösung
Haben Sie meinen es nicht darum geht, die
HomeView mHomeView = (HomeView) this.findViewById(R.id.home_view);
und bevor es auf der Linie abstürzt?
Überprüfen Sie, ob Ihr Konstruktor
HomeView(final Context context, final AttributeSet attrs){
super(context, attrs);
und nicht
HomeView(final Context context){
super(context);
Sie müssen die AttributeSet
Andere Tipps
Überprüfen Sie, dass Ihre Konstrukteure Homeview Geräte:
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"
Keiner meiner Layouts @+id
. Vielleicht sollte man den Blick auf home_root
gesetzt. Erkundigen Sie sich bei Ihnen R.java für den Namen des Layouts, oder versuchen
setContentView(R.layout.home_root);