我有一个4x4的按钮表。 他们的身份是这样的:
如何以编程方式获取单击的按钮xml id? 例如:
我可以计算它们但我无法获得点击的ID:/
我希望你能帮助我
(请原谅我的语法错误。我不是母语人士)
我的听众:
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();
}
我的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" />
答案 0 :(得分:1)
将onClickListener
设置为您的Button
和onClick
方法:
@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;
}
...
}