Reputation: 1
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
Reputation: 5220
set onClickListener
to your Button
s 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