Как перемешать строки и столбцы в Android? - PullRequest
0 голосов
/ 16 апреля 2011

Я хочу сделать простую игру, чтобы мой ребенок был занят, и код ниже будет основным экраном.То, что я надеюсь сделать, это получить изображение, чтобы показать животное, и таблица будет содержать животное где-то.Я решил использовать кнопки, чтобы при нажатии на них отображались животные под ним, и на данный момент я пометил их текстом от 1 до 25, чтобы я мог отслеживать их для тестирования.

У меня есть кнопка нанижняя часть (перемешивание) Как я должен выполнять перемешивание строк и столбцов при нажатии кнопки перемешивания?Например, кнопка 1 установлена ​​как первая кнопка в строке 1, но она должна переместиться в другую позицию в другом ряду.

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

    <TableLayout android:layout_width="fill_parent" android:layout_height="fill_parent"
    xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:stretchColumns="*" >


       <ImageView android:id="@+id/imageView1" android:src="@drawable/ANIMAL" android:layout_height="wrap_content" android:layout_width="fill_parent" android:adjustViewBounds="true"></ImageView> 


          <TableRow android:id="@+id/TableRow01" android:layout_width="fill_parent" android:layout_height="fill_parent">
                <Button android:id="@+id/Button01" android:text="1" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
                <Button android:id="@+id/Button02" android:text="2" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
                <Button android:id="@+id/Button03" android:text="3" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
                <Button android:id="@+id/Button04" android:text="4" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
                <Button android:id="@+id/Button05" android:text="5" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button></TableRow>
      <TableRow android:id="@+id/TableRow02" android:layout_width="fill_parent" android:layout_height="fill_parent">
                <Button android:id="@+id/Button06" android:text="6" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
                <Button android:id="@+id/Button07" android:text="7" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
                <Button android:id="@+id/Button08" android:text="8" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
                <Button android:id="@+id/Button09" android:text="9" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
                <Button android:id="@+id/Button10" android:text="10" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
            </TableRow>
            <TableRow android:id="@+id/TableRow03" android:layout_width="fill_parent" android:layout_height="fill_parent">
                <Button android:id="@+id/Button11" android:text="11" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
                <Button android:id="@+id/Button12" android:text="12" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
                <Button android:id="@+id/Button13" android:text="13" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
                <Button android:id="@+id/Button14" android:text="14" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
                <Button android:text="15" android:layout_height="wrap_content" android:id="@+id/Button15" android:layout_width="fill_parent"></Button>
            </TableRow>
            <TableRow android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/TableRow04">
                <Button android:text="16" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/Button16"></Button>
                <Button android:text="17" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/Button17"></Button>
                <Button android:text="18" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/Button18"></Button>
                <Button android:text="19" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/Button19"></Button>
                <Button android:text="20" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/Button20"></Button>
            </TableRow>
            <TableRow android:layout_height="fill_parent" android:layout_width="fill_parent"  android:id="@+id/tableRow05">
                <Button android:text="21" android:id="@+id/button21" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
                <Button android:text="22" android:id="@+id/button22" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
                <Button android:text="23" android:id="@+id/button23" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
                <Button android:text="24" android:id="@+id/button24" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
                <Button android:text="25" android:id="@+id/button25" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
            </TableRow>  


        <Button android:id="@+id/mixbtn"  android:layout_height="40dip" android:layout_width="fill_parent" android:clickable="true" android:text="Shuffle"></Button>
  </TableLayout>

1 Ответ

0 голосов
/ 16 апреля 2011

Я полагаю, что самый простой способ - вместо макета xml создать ArrayList<Button> buttonsList, который вы можете добавить на onCreate() к TableLayout. Затем после shuffleButton onClick() удалите кнопки из TableLayout, перемешайте массив (Collections.shuffle (buttonsList);) и добавьте их снова.

Надеюсь, это имеет смысл для вас

...