# Android: OnClickListener erkennt Buttons nicht



## eistee (21. Jan 2010)

Hallöle, ich bin's mal wieder und nerv ein bisschen mit meinen Android-Problemen 

Also folgendes Problem: Ich habe für mein Memory Spiel in main.xml ein Layout mit 12 Buttons erstellt, die die Memory-Karten sein sollen. Die IDs für die Buttons heißen jeweils (hier z.B. für Button 1): android:id="@+id/B01", der ganze Button-Code ist:
<Button android:text="memory" android:id="@+id/B01" android:layout_height="fill_parent" android:layout_width="fill_parent" android:background="@drawable/icon" android:clickable="true" android:cursorVisible="true"></Button>

So, wenn ich jetzt dem OnClickListener sage, er soll auf B01 zurückgreifen, findet er nix, nur button1, button2, und button3. ich hab allerdings 12 Buttons.

Der OnClickListener sieht übrigens so aus:
Button button1 = (Button)findViewById(R.id.button1);
 ((View) button1).setOnClickListener (new View.OnClickListener(){
	public void onClick (View v){
		karteWenden ((Button) findViewById(R.id.button1));

Liegt das evtl. daran, dass ich die Buttons umbenannt hab? Die IDs hießen ursprünglich mal "@+id/button1" und soweiter. Kann ich mir aber eigtl. nicht vorstellen...


Hoffe, man versteht mein Problem und ihr könnt mir helfen. Komme nämlich sonst nicht weiter bei meinem Memory ;(

Danke!


----------



## eRaaaa (21. Jan 2010)

eistee hat gesagt.:


> Hallöle, ich bin's mal wieder und nerv ein bisschen mit meinen Android-Problemen
> 
> Also folgendes Problem: Ich habe für mein Memory Spiel in main.xml ein Layout mit 12 Buttons erstellt, die die Memory-Karten sein sollen. Die IDs für die Buttons heißen jeweils (hier z.B. für Button 1): android:id="@+id/B01", der ganze Button-Code ist:
> <Button android:text="memory" android:id="@+id/B01" android:layout_height="fill_parent" android:layout_width="fill_parent" android:background="@drawable/icon" android:clickable="true" android:cursorVisible="true"></Button>
> ...




Also wenn die ID`s jetzt B01 heißen, dann musst du dich natürlich im Code auch darauf beziehen !
DU kannst ja mal einen Blick in die R.java - Klasse werfen...dort kannst du ja sehen in wie weit er jetzt schon die Datei neu generiert hat !


----------



## eistee (21. Jan 2010)

Hi,
ja, das hatte ich ursprünglich ja auch eingegeben, aber dann kommt immer die Fehlermeldung R.id.Bo1 cannot be resolved. Hab dann das genommen, was er mir vorgeschlagen hat, obwohl's ja eigtl keinen Sinn macht.
In R.java steht zwar die Klasse Layout, aber nichts zu buttons...


----------



## eRaaaa (21. Jan 2010)

Hmm...hast du deine main.xml abgespeichert und ist diese auch fehlerfrei? (weil sonst generiert er dir nämlich die R.java nicht neu *glaub*)

Ansonsten wüsste ich jetzt auch nichts, dafür mache ich selbst noch zu wenig mit Android ;/


----------



## eistee (21. Jan 2010)

Ok, ich glaub ich hab den Fehler. Hoff ich zumindest, auch wenn ich nicht weiß, wie ich den genau lösen kann 

Hab nochmal genau meinen xml-code angeschaut und da hab ich die kleine gelbe Fehlermeldung "- No grammar constraints (DTD or XML schema) detected for the document." entdeckt. Bei meinem Code steht in der ersten Zeile <?xml version="1.0" encoding="utf-8"?>
und dann hab ich dadrunter meinen Code gepinselt. Dachte eigtl, dass das reicht...

Weißt du, was ich da jetzt genau noch eingeben muss?

Danke!


----------



## eRaaaa (21. Jan 2010)

Da du ja immer [c]android:text[/c] usw. verwendest, musst du auch den Namespace definieren, hast du das? 

[xmlns:android="http://schemas.android.com/apk/res/android"]

Zeige mal deine main.xml !


----------



## eistee (21. Jan 2010)

Hm, das steht im 1. Layout. Muss das wohl für jedes Layout einzeln eingegeben werden? Muss zugeben, dass ich den Code nicht alleine geschrieben hab, und daher auch net ganz weiß, wo was noch hinein muss 

Danke aber schonmal für die Hilfe!

Hier mein main.xml-Code. (Kurz noch zum Verständnis: 1. LinearLayout definiert die Zeilen, 2. Layout die Spalten innerhalb der jeweiligen zeile, jeder Button sitzt in einem eigenen Layout):

<?xml version="1.0" encoding="utf-8"?>


<LinearLayout android:id="@+id/TableLayout01" android:layout_height="wrap_content" xmlns:android="http://schemas.android.com/apk/res/android" androidrientation="vertical" android:layout_width="wrap_content">

	<LinearLayout android:id="@+id/LinearLayout02" android:layout_height="wrap_content" androidrientation="horizontal" android:layout_width="wrap_content">

		<LinearLayout android:id="@+id/LinearLayout03" android:layout_height="40pt" android:layout_width="40pt">
			<Button android:text="memory" android:id="@+id/B01" android:layout_height="fill_parent" android:layout_width="fill_parent" android:clickable="true" android:cursorVisible="true" android:background="@drawable/icon">
			</Button>

</LinearLayout>	
		<LinearLayout android:id="@+id/LinearLayout04" android:layout_height="40pt" android:layout_width="40pt">
			<Button android:text="memory" android:id="@+id/B02" android:layout_height="fill_parent" android:layout_width="fill_parent" android:background="@drawable/icon" android:clickable="true" android:cursorVisible="true">
			</Button>
		</LinearLayout>	

		<LinearLayout android:id="@+id/LinearLayout05" android:layout_height="40pt" android:layout_width="40pt">
			<Button android:text="memory" android:id="@+id/B03" android:layout_height="fill_parent" android:layout_width="fill_parent" android:background="@drawable/icon" android:clickable="true" android:cursorVisible="true">
			</Button>
		</LinearLayout>
	</LinearLayout>	

	<LinearLayout android:id="@+id/LinearLayout06" android:layout_height="wrap_content" androidrientation="horizontal" android:layout_width="wrap_content">
		<LinearLayout android:id="@+id/LinearLayout03" android:layout_height="40pt" android:layout_width="40pt">
		<Button android:text="memory" android:id="@+id/B04" android:layout_width="fill_parent" android:layout_height="fill_parent" android:clickable="true" android:cursorVisible="true" android:background="@drawable/icon"></Button>
		</LinearLayout>
		<LinearLayout android:id="@+id/LinearLayout07" android:layout_height="40pt" android:layout_width="40pt">
		<Button android:text="memory" android:id="@+id/B05" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/icon" android:clickable="true" android:cursorVisible="true"></Button>
		</LinearLayout>
		<LinearLayout android:id="@+id/LinearLayout08" android:layout_height="40pt" android:layout_width="40pt">
		<Button android:text="memory" android:id="@+id/B06" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/icon" android:clickable="true" android:cursorVisible="true"></Button>
		</LinearLayout>
	</LinearLayout>

	<LinearLayout android:id="@+id/LinearLayout09" android:layout_height="wrap_content" androidrientation="horizontal" android:layout_width="wrap_content">
		<LinearLayout android:id="@+id/LinearLayout10" android:layout_height="40pt" android:layout_width="40pt">
		<Button android:text="memory" android:id="@+id/B07" android:layout_width="fill_parent" android:layout_height="fill_parent" android:clickable="true" android:cursorVisible="true" android:background="@drawable/icon"></Button>
		</LinearLayout>
		<LinearLayout android:id="@+id/LinearLayout11" android:layout_height="40pt" android:layout_width="40pt">
		<Button android:text="memory" android:id="@+id/B08" android:layout_width="fill_parent" android:layout_height="fill_parent" android:clickable="true" android:cursorVisible="true" android:background="@drawable/icon"></Button>
		</LinearLayout>
		<LinearLayout android:id="@+id/LinearLayout12" android:layout_height="40pt" android:layout_width="40pt">
		<Button android:text="memory" android:id="@+id/B09" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/icon" android:clickable="true" android:cursorVisible="true"></Button>
		</LinearLayout>
	</LinearLayout>

	<LinearLayout android:id="@+id/LinearLayout13" android:layout_height="wrap_content" androidrientation="horizontal" android:layout_width="wrap_content">
		<LinearLayout android:id="@+id/LinearLayout14" android:layout_height="40pt" android:layout_width="40pt">
		<Button android:text="memory" android:id="@+id/B10" android:layout_width="fill_parent" android:layout_height="fill_parent" android:clickable="true" android:cursorVisible="true" android:background="@drawable/icon"></Button>
		</LinearLayout>
		<LinearLayout android:id="@+id/LinearLayout15" android:layout_height="40pt" android:layout_width="40pt">
		<Button android:text="memory" android:id="@+id/B11" android:layout_width="fill_parent" android:layout_height="fill_parent" android:clickable="true" android:cursorVisible="true" android:background="@drawable/icon"></Button>
		</LinearLayout>
		<LinearLayout android:id="@+id/LinearLayout16" android:layout_height="40pt" android:layout_width="40pt">
		<Button android:text="memory" android:id="@+id/B12" android:layout_width="fill_parent" android:layout_height="fill_parent" android:clickable="true" android:cursorVisible="true" android:background="@drawable/icon"></Button>
		</LinearLayout>
	</LinearLayout>
</LinearLayout>


----------



## eRaaaa (21. Jan 2010)

Mhm... sorry, aber da weiß ich nun auch nicht mehr weiter. Sehe da keinen Fehler und bei mir nimmt der die XML-Datei auch korrekt an und generiert auch die R.java korrekt

```
........
        public static final int B01=0x7f050003;
        public static final int B02=0x7f050005;
        public static final int B03=0x7f050007;
        public static final int B04=0x7f050009;
        public static final int B05=0x7f05000b;
        public static final int B06=0x7f05000d;
        public static final int B07=0x7f050010;
        public static final int B08=0x7f050012;
        public static final int B09=0x7f050014;
        public static final int B10=0x7f050017;
        public static final int B11=0x7f050019;
        public static final int B12=0x7f05001b;
.......
```


----------

