0

我有两组布局,填充有按钮。有没有办法禁用相同布局的按钮之间的任何交互?当我单击一个按钮然后从同一布局中单击另一个按钮时,我只需要什么都不会发生。对于属于上下布局的按钮,我用“和”标记了每个按钮。我每种5个。我有一些相反布局的交互按钮,效果很好(实际上任何两个给定按钮之间的交互都很好,这很糟糕),但我不希望相同布局的按钮之间的交互。

这是我的游戏课,不是全部,只是重要的部分。另外,我已经删除了其余按钮的代码,只剩下 4 个按钮,每个布局 2 个,以节省一些空间。我从 sqlite 数据库导入一些文本,并将其随机设置为我的按钮。

final OnClickListener clickListener = new OnClickListener() {

            private Button buttonClicked;

            public void onClick(View v) {


                Button button = (Button) v;
                button.getBackground().setColorFilter(new LightingColorFilter(0xFFFFFFFF, 0x003333));

                if (buttonClicked == null) {
                    // first button is clicked
                    buttonClicked = button;
                } else {
                    // second button is clicked
                    if (buttonClicked.getTag().equals(button.getTag())) {
                        button.getBackground().setColorFilter(new LightingColorFilter(0xFFFFFFFF, 0x66FF33));
                        buttonClicked.getBackground().setColorFilter(new LightingColorFilter(0xFFFFFFFF, 0x66FF33));
                      buttonClicked.setEnabled(false);
                        button.setEnabled(false);
                    } else {
                        buttonClicked.setEnabled(false);
                        buttonClicked.setTextColor(Color.GRAY);
                        buttonClicked.getBackground().setColorFilter(new LightingColorFilter(0xFFFFFFFF, 0xFFCC99));
                        button.getBackground().clearColorFilter();
                    }
                    buttonClicked = null;

            }
     };




    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.game);

        a1 = (Button) findViewById(R.id.bA1);
        a2 = (Button) findViewById(R.id.bA2);
        b1 = (Button) findViewById(R.id.bB1);
        b2 = (Button) findViewById(R.id.bB2);

        nextQuestion();
        }

        public void nextQuestion() {


        TestAdapter mDbHelper = new TestAdapter(this);
        mDbHelper.createDatabase();

        try{ 

            mDbHelper.open();

            Cursor c = mDbHelper.getTestData(generateWhereClause());

            mAnsweredQuestions.add(c.getLong(0));

            ArrayList<MyStruct> labelsA = new ArrayList<MyStruct>();
            ArrayList<MyStruct> labelsB = new ArrayList<MyStruct>();

            labelsA.add(new MyStruct(c.getString(2), "1")); // this tag should be the same to button that matches
            labelsB.add(new MyStruct(c.getString(3), "1"));
            labelsA.add(new MyStruct(c.getString(4), "2"));
            labelsB.add(new MyStruct(c.getString(5), "2"));


            Collections.shuffle(labelsA);
            Collections.shuffle(labelsB);


            pitanje.setText(c.getString(1));

            a1.setText(labelsA.get(0).label);
            a1.setTag(labelsA.get(0).tag);
            a1.setOnClickListener(clickListener);
            a1.getBackground().clearColorFilter();
            a1.setEnabled(true);
            b1.setText(labelsB.get(0).label);
            b1.setTag(labelsB.get(0).tag);
            b1.setOnClickListener(clickListener);
            b1.getBackground().clearColorFilter();
            b1.setEnabled(true);
            a2.setText(labelsA.get(1).label);
            a2.setTag(labelsA.get(1).tag);
            a2.setOnClickListener(clickListener);
            a2.getBackground().clearColorFilter();
            a2.setEnabled(true);
            b2.setText(labelsB.get(1).label);
            b2.setTag(labelsB.get(1).tag);
            b2.setOnClickListener(clickListener);
            b2.getBackground().clearColorFilter();
            b2.setEnabled(true);


        }


        finally{ 
            mDbHelper.close();
        }

XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="@drawable/background">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="30dp"
        android:gravity="top|center"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/tvPitanje"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Ovde ce biti postavljeno pitanje"
            android:textColor="#ffffff"
            android:textSize="18sp" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="360dp"
        android:orientation="horizontal" >

        <LinearLayout
            android:id="@+id/kolona1"
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:layout_weight="50"
            android:gravity="top"
            android:orientation="vertical"
            android:paddingLeft="3dp"
            android:paddingRight="2dp" >

            <Button
                android:id="@+id/bA1"
                android:layout_width="fill_parent"
                android:layout_height="41dp"
                android:layout_gravity="clip_horizontal"
                android:layout_marginBottom="1.5dp"
                android:background="@drawable/buttons"
                android:gravity="center_vertical|center_horizontal"
                android:padding="0dp"
                android:tag="l"
                android:text="A1"
                android:textColor="#ffffff"
                android:textSize="16sp" />

            <Button
                android:id="@+id/bA2"
                android:layout_width="fill_parent"
                android:layout_height="41dp"
                android:text="A2"
                android:background="@drawable/buttons"
                android:textColor="#ffffff"
                android:layout_marginBottom="1.5dp"
                android:layout_marginTop="1.5dp"
                android:tag="l"
                android:padding="0dp"
                android:textSize="16sp" />

            <Button
                android:id="@+id/bA3"
                android:layout_width="fill_parent"
                android:layout_height="41dp"
                android:text="A3"
                android:background="@drawable/buttons"
                android:textColor="#ffffff"
                android:layout_marginBottom="1.5dp"
                android:layout_marginTop="1.5dp"
                android:tag="l"
                android:padding="0dp"
                android:textSize="16sp" />

            <Button
                android:id="@+id/bA4"
                android:layout_width="fill_parent"
                android:layout_height="41dp"
                android:text="A4"
                android:background="@drawable/buttons"
                android:textColor="#ffffff"
                android:layout_marginBottom="1.5dp"
                android:layout_marginTop="1.5dp"
                android:tag="l"
                android:padding="0dp"
                android:textSize="16sp" />

            <Button
                android:id="@+id/bA5"
                android:layout_width="fill_parent"
                android:layout_height="41dp"
                android:text="A5"
                android:background="@drawable/buttons"
                android:textColor="#ffffff"
                android:layout_marginBottom="1.5dp"
                android:layout_marginTop="1.5dp"
                android:tag="l"
                android:padding="0dp"
                android:textSize="16sp" />

            <Button
                android:id="@+id/bA6"
                android:layout_width="fill_parent"
                android:layout_height="41dp"
                android:text="A6"
                android:background="@drawable/buttons"
                android:textColor="#ffffff"
                android:layout_marginBottom="1.5dp"
                android:layout_marginTop="1.5dp"
                android:tag="l"
                android:padding="0dp"
                android:textSize="16sp" />

            <Button
                android:id="@+id/bA7"
                android:layout_width="fill_parent"
                android:layout_height="41dp"
                android:text="A7"
                android:background="@drawable/buttons"
                android:textColor="#ffffff"
                android:layout_marginBottom="1.5dp"
                android:layout_marginTop="1.5dp"
                android:tag="l"
                android:padding="0dp"
                android:textSize="16sp" />

            <Button
                android:id="@+id/bA8"
                android:layout_width="fill_parent"
                android:layout_height="41dp"
                android:text="A8"
                android:background="@drawable/buttons"
                android:textColor="#ffffff"
                android:layout_marginTop="1.5dp"
                android:tag="l"
                android:padding="0dp"
                android:textSize="16sp" />

        </LinearLayout>

        <LinearLayout
            android:id="@+id/kolona2"
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:layout_weight="50"
            android:gravity="top"
            android:orientation="vertical"
            android:paddingLeft="2dp"
            android:paddingRight="3dp" >

            <Button
                android:id="@+id/bB1"
                android:layout_width="fill_parent"
                android:layout_height="41dp"
                android:layout_gravity="top|fill_horizontal"
                android:layout_marginBottom="1.5dp"
                android:background="@drawable/buttons"
                android:gravity="top|center_horizontal"
                android:tag="r"
                android:text="B1"
                android:textColor="#ffffff"
                android:textSize="16sp" />

            <Button
                android:id="@+id/bB2"
                android:layout_width="fill_parent"
                android:layout_height="41dp"
                android:layout_marginBottom="1.5dp"
                android:layout_marginTop="1.5dp"
                android:background="@drawable/buttons"
                android:gravity="top|center_horizontal"
                android:tag="r"
                android:text="B2"
                android:textColor="#ffffff"
                android:textSize="16sp" />

            <Button
                android:id="@+id/bB3"
                android:layout_width="fill_parent"
                android:layout_height="41dp"
                android:layout_marginBottom="1.5dp"
                android:layout_marginTop="1.5dp"
                android:background="@drawable/buttons"
                android:gravity="top|center_horizontal"
                android:tag="r"
                android:text="B3"
                android:textColor="#ffffff"
                android:textSize="16sp" />

            <Button
                android:id="@+id/bB4"
                android:layout_width="fill_parent"
                android:layout_height="41dp"
                android:layout_marginBottom="1.5dp"
                android:layout_marginTop="1.5dp"
                android:background="@drawable/buttons"
                android:gravity="top|center_horizontal"
                android:tag="r"
                android:text="B4"
                android:textColor="#ffffff"
                android:textSize="16sp" />

            <Button
                android:id="@+id/bB5"
                android:layout_width="fill_parent"
                android:layout_height="41dp"
                android:layout_marginBottom="1.5dp"
                android:layout_marginTop="1.5dp"
                android:background="@drawable/buttons"
                android:gravity="top|center_horizontal"
                android:tag="r"
                android:text="B5"
                android:textColor="#ffffff"
                android:textSize="16sp" />

            <Button
                android:id="@+id/bB6"
                android:layout_width="fill_parent"
                android:layout_height="41dp"
                android:layout_marginBottom="1.5dp"
                android:layout_marginTop="1.5dp"
                android:background="@drawable/buttons"
                android:gravity="top|center_horizontal"
                android:tag="r"
                android:text="B6"
                android:textColor="#ffffff"
                android:textSize="16sp" />

            <Button
                android:id="@+id/bB7"
                android:layout_width="fill_parent"
                android:layout_height="41dp"
                android:layout_marginBottom="1.5dp"
                android:layout_marginTop="1.5dp"
                android:background="@drawable/buttons"
                android:gravity="top|center_horizontal"
                android:tag="r"
                android:text="B7"
                android:textColor="#ffffff"
                android:textSize="16sp" />

            <Button
                android:id="@+id/bB8"
                android:layout_width="fill_parent"
                android:layout_height="41dp"
                android:layout_marginTop="1.5dp"
                android:background="@drawable/buttons"
                android:gravity="top|center_horizontal"
                android:tag="r"
                android:text="B8"
                android:textColor="#ffffff"
                android:textSize="16sp" />

        </LinearLayout>

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:orientation="horizontal"
        android:weightSum="3" >

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:gravity="center" >

            <Button
                android:id="@+id/bIzlaz"
                android:layout_width="80dp"
                android:layout_height="42dp"
                android:layout_gravity="center"
                android:background="@drawable/buttons"
                android:gravity="center"
                android:text="Izlaz!"
                android:textColor="#ffffff"
                android:textSize="20sp" />

        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:gravity="center" >

            <TextView
                android:id="@+id/tvPoeni"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/tvScore"
                android:textColor="#ffffff"
                android:textSize="21sp" />

        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:gravity="center" >

            <TextView
                android:id="@+id/tvVreme"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="30"
                android:textColor="#ff0000"
                android:textSize="21sp" />

        </LinearLayout>

    </LinearLayout>

</LinearLayout>
4

1 回答 1

1

您可以使用该getParent方法并比较两个视图的父级。如果父级相同,则按钮位于相同的布局中,不会发生任何事情。

改变你的其他:

} else {
    // second button is clicked

... 到一个 else if:

// only do stuff if buttons are in different layouts
} else if (button.getParent () != buttonClicked.getParent()) {
     // second button is clicked
于 2013-04-09T14:02:52.143 回答