java – 如何禁用相同布局的按钮之间的交互?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 如何禁用相同布局的按钮之间的交互?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含10695字,纯文字阅读大概需要16分钟。
内容图文
![java – 如何禁用相同布局的按钮之间的交互?](/upload/InfoBanner/zyjiaocheng/709/25bd5e0a70364c7cb642650291aca598.jpg)
我有两组布局,用按钮填充.有没有办法禁用相同布局的按钮之间的任何交互?当我单击一个按钮然后从同一布局中单击另一个按钮时,我不需要发生任何事情.对于属于上下布局的按钮,我用“和”标记每个按钮.我有5种.
我有一些相互作用beetwen按钮的oposite布局,并且工作正常(实际上交互在任何两个给定的按钮之间工作正常,这很糟糕),但我不希望相同布局的按钮之间的交互.
这是我的游戏课程,而不是全部,只是重要的部分.此外,我删除了其余按钮的代码,只留下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>
解决方法:
您可以使用getParent方法并比较两个视图的父级.如果父级是相同的,则按钮处于相同的布局中,不会发生任何事情.
改变你的别人:
} else {
// second button is clicked
……如果:
// only do stuff if buttons are in different layouts
} else if (button.getParent () != buttonClicked.getParent()) {
// second button is clicked
内容总结
以上是互联网集市为您收集整理的java – 如何禁用相同布局的按钮之间的交互?全部内容,希望文章能够帮你解决java – 如何禁用相同布局的按钮之间的交互?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。