我有两组布局,填充有按钮。有没有办法禁用相同布局的按钮之间的任何交互?当我单击一个按钮然后从同一布局中单击另一个按钮时,我只需要什么都不会发生。对于属于上下布局的按钮,我用“和”标记了每个按钮。我每种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>