Gergely Duna
Gergely Duna

Reputation: 1

ANDROID: Get Button XML Id

I have a 4x4 table from buttons. Their Id like this:

How can I get programmatically the clicked button xml id? For example:

I can calculate them but I can't get the clicked id :/
I hope you can help me
(Excuse me for the grammar mistakes. I am not a native speaker)
My listener:

public void click(View v){
    Button b = (Button)v;
    String[] string = b.getText().toString().split("|");
    String id = b.getId();
    String[] source = id.split("|");
    Integer y = Integer.parseInt(source[2]);
    Integer x = Integer.parseInt(source[3]);
    Integer uppery = y-1;
    Integer lowery = y+1;
    Integer rightx = x-1;
    Integer leftx = x+1;
    String upperid = uppery.toString()+x.toString();
    String lowerid = lowery.toString()+x.toString();
    String rightid = y.toString()+rightx.toString();
    String leftid = y.toString()+leftx.toString();
}

My xml:

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:text="4x4 Puzzle"
    android:id="@+id/textView"
    android:gravity="center_horizontal"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_marginTop="55dp"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true" />

<TableLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:padding="5dp"
    android:background="#ffd4d4d4"
    android:gravity="center"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true">

    <TableRow
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center">

        <Button
            android:onClick="click"
            style="?android:attr/buttonStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="1"
            android:id="@+id/b11"
            android:layout_column="0" />

        <Button
            android:onClick="click"
            style="?android:attr/buttonStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="2"
            android:id="@+id/b12"
            android:layout_column="1" />

        <Button
            android:onClick="click"
            style="?android:attr/buttonStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="3"
            android:id="@+id/b13"
            android:layout_column="2" />

        <Button
            android:onClick="click"
            style="?android:attr/buttonStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="4"
            android:id="@+id/b14"
            android:layout_column="3" />
    </TableRow>
    <TableRow
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center">

        <Button
            android:onClick="click"
            style="?android:attr/buttonStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="5"
            android:id="@+id/b21"
            android:layout_column="0" />

        <Button
            android:onClick="click"
            style="?android:attr/buttonStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="6"
            android:id="@+id/b22"
            android:layout_column="1" />

        <Button
            android:onClick="click"
            style="?android:attr/buttonStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="7"
            android:id="@+id/b23"
            android:layout_column="2" />

        <Button
            android:onClick="click"
            style="?android:attr/buttonStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="8"
            android:id="@+id/b24"
            android:layout_column="3" />
    </TableRow>
    <TableRow
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center">

        <Button
            android:onClick="click"
            style="?android:attr/buttonStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="9"
            android:id="@+id/b31"
            android:layout_column="0" />

        <Button
            android:onClick="click"
            style="?android:attr/buttonStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="10"
            android:id="@+id/b32"
            android:layout_column="1" />

        <Button
            android:onClick="click"
            style="?android:attr/buttonStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="11"
            android:id="@+id/b33"
            android:layout_column="2" />

        <Button
            android:onClick="click"
            style="?android:attr/buttonStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="12"
            android:id="@+id/b34"
            android:layout_column="3" />
    </TableRow>
    <TableRow
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center">

        <Button
            android:onClick="click"
            style="?android:attr/buttonStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="13"
            android:id="@+id/b41"
            android:layout_column="0" />

        <Button
            android:onClick="click"
            style="?android:attr/buttonStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="14"
            android:id="@+id/b42"
            android:layout_column="1" />

        <Button
            android:onClick="click"
            style="?android:attr/buttonStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="15"
            android:id="@+id/b43"
            android:layout_column="2" />

        <Button
            style="?android:attr/buttonStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/b44"
            android:layout_column="3"
            android:onClick="click"
            android:nestedScrollingEnabled="false" />
    </TableRow>
</TableLayout>

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="SHUFFLE"
    android:id="@+id/button"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="32dp" />

Upvotes: 0

Views: 1472

Answers (1)

Mohammad Rahchamani
Mohammad Rahchamani

Reputation: 5220

set onClickListener to your Buttons and in your onClick method :

@Override 
public void onClick(View v) {
    int id = v.getId(); // clicked Button id
    switch (id) {
     case R.id.b11:
      ...
      break;
     case R.id.b12:
      ...
      break;
     ...
     default:
      break;
    }
    ...
}

Upvotes: 1

Related Questions