Android Warum werden Views nicht gefunden?

X5-599

Top Contributor
Was kann es für Gründe geben, dass Views nicht gefunden werden?

Szenario:
xml ist da. Layout darin auch. Die Resource Klasse kennt die id für besagtes Layout auch. Warum ist das Layout aber immer null?

Java:
linearLayout = (LinearLayout)findViewById(R.id.My_Layout);

Der Compiler meckert nicht das er die ID My_Layout nicht findet. Also wird doch alles mit der xml stimmen. Sollte es auch, denn die habe ich copy pasted von einer bereits vorhandenen.
 
Bitte relevanten Code posten. In diesem Falle:
- Auszug aus der XML (unter Angabe des Namen der XML) wo du das linearlayout definierst (wurde die id auch wirklich gesetzt?)
- Die Activity (zumindest die onCreate), wo du das layout setzt (hast du überhaupt das richtige mit setContentView gesetzt)?

Das die Resourcenklasse [c]R[/c] die ID kennt muss noch nichts heißen.

Ansonsten: clean mal dein Projekt, das hilft ab und zu bei seltsamen Fehlern.
 
Was hat denn der Name der xml mit irgendwas zu tun? Es läuft doch alles über das was unter android:id="@+id/xyz" angegeben ist.

Java:
public class MyDialog extends Dialog
{
	private LinearLayout linearLayout;
	
	public MyDialog(Context context)
	{
		super(context);
		setCancelable(true);
		linearLayout = (LinearLayout)findViewById(R.id.My_Layout);
	}
}

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


</LinearLayout>
</LinearLayout>
 
Ich arbeite so selten mit Dialogen und wenn dann meistens mit den Buildern. Aber versuche es mal mit folgendem:

Java:
public class MyDialog extends Dialog
{
    private LinearLayout linearLayout;
    
    public MyDialog(Context context)
    {
        super(context);
        setContentView(R.layout.mylayout); // <-- neu
        setCancelable(true);
        linearLayout = (LinearLayout)findViewById(R.id.My_Layout);
    }
}


Was hat denn der Name der xml mit irgendwas zu tun?
Ganz einfach, über diesen gibst du an, welches Layout verwendet werden soll. Woher sollte die Activity/Dialog das sonst wissen?
 

Neue Themen


Zurück
Oben