ANDROID:获取Button XML Id

时间:2014-12-03 21:31:19

标签: java android

我有一个4x4的按钮表。 他们的身份是这样的:

  • b11 b12 b13 b14
  • b21 b22 b23 b24
  • b31 b32 b33 b34
  • b41 b42 b43 b44

如何以编程方式获取单击的按钮xml id? 例如:

  • 我点击已获得id的按钮:b33
  • 我需要以下id-s鞋帮:b23 righter:b32 lefter:b34 under:b43

我可以计算它们但我无法获得点击的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" />

1 个答案:

答案 0 :(得分:1)

onClickListener设置为您的ButtononClick方法:

@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;
    }
    ...
}