android - Android:当TextView匹配值时禁用按钮
问题描述
我正在学习 android,当id具有价值时,我正在努力disable
使用按钮 id 。btnWicketIndia
TextView
wicketsIndiaText
" \ 10 "
另外请告诉我我编写代码的方式是正确的还是可以优化的。
MainActivity.java
package me.jatinsoni.cricketscorecard;
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
int scoreIndia = 0;
int wicketsIndia = 0;
int scoreSA = 0;
int wicketsSA = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// India Buttons
Button btnSixerIndia = findViewById(R.id.sixerIndia);
Button btnFourIndia = findViewById(R.id.fourIndia);
Button btnSingleIndia = findViewById(R.id.singleIndia);
Button btnTwoIndia = findViewById(R.id.twoIndia);
Button btnNoIndia = findViewById(R.id.noIndia);
Button btnWideIndia = findViewById(R.id.wideIndia);
Button btnWicketIndia = findViewById(R.id.wicketIndia);
// South Africa Buttons
Button btnSixerSA = findViewById(R.id.sixerSA);
Button btnFourSA = findViewById(R.id.fourSA);
Button btnSingleSA = findViewById(R.id.singleSA);
Button btnTwoSA = findViewById(R.id.twoSA);
Button btnNoSA = findViewById(R.id.noSA);
Button btnWideSA = findViewById(R.id.wideSA);
Button btnWicketSA = findViewById(R.id.wicketSA);
// Reset button
Button btnResetScore = findViewById(R.id.resetScore);
btnSixerIndia.setOnClickListener(this);
btnFourIndia.setOnClickListener(this);
btnSingleIndia.setOnClickListener(this);
btnTwoIndia.setOnClickListener(this);
btnNoIndia.setOnClickListener(this);
btnWideIndia.setOnClickListener(this);
btnWicketIndia.setOnClickListener(this);
btnSixerSA.setOnClickListener(this);
btnFourSA.setOnClickListener(this);
btnSingleSA.setOnClickListener(this);
btnTwoSA.setOnClickListener(this);
btnNoSA.setOnClickListener(this);
btnWideSA.setOnClickListener(this);
btnWicketSA.setOnClickListener(this);
btnResetScore.setOnClickListener(this);
displayScoreIndia(scoreIndia, wicketsIndia);
displayScoreSA(scoreSA, wicketsSA);
}
@Override
public void onClick(View v) {
// Get Buttons IDs
switch (v.getId()) {
// India Buttons
case R.id.sixerIndia: {
scoreIndia += 6;
displayScoreIndia(scoreIndia, wicketsIndia);
break;
}
case R.id.fourIndia: {
scoreIndia += 4;
displayScoreIndia(scoreIndia, wicketsIndia);
break;
}
case R.id.singleIndia: {
scoreIndia += 1;
displayScoreIndia(scoreIndia, wicketsIndia);
break;
}
case R.id.twoIndia: {
scoreIndia += 2;
displayScoreIndia(scoreIndia, wicketsIndia);
break;
}
case R.id.noIndia: {
scoreIndia += 1;
displayScoreIndia(scoreIndia, wicketsIndia);
break;
}
case R.id.wideIndia: {
scoreIndia += 1;
displayScoreIndia(scoreIndia, wicketsIndia);
break;
}
case R.id.wicketIndia: {
if (String.valueOf(wicketsIndia).equals(" / 10")) {
btnWicketIndia.setEnabled(false);
}
wicketsIndia += 1;
displayScoreIndia(scoreIndia, wicketsIndia);
break;
}
// South Africa Buttons
case R.id.sixerSA: {
scoreSA += 6;
displayScoreSA(scoreSA, wicketsSA);
break;
}
case R.id.fourSA: {
scoreSA += 4;
displayScoreSA(scoreSA, wicketsSA);
break;
}
case R.id.singleSA: {
scoreSA += 1;
displayScoreSA(scoreSA, wicketsSA);
break;
}
case R.id.twoSA: {
scoreSA += 2;
displayScoreSA(scoreSA, wicketsSA);
break;
}
case R.id.noSA: {
scoreSA += 1;
displayScoreSA(scoreSA, wicketsSA);
break;
}
case R.id.wideSA: {
scoreSA += 1;
displayScoreSA(scoreSA, wicketsSA);
break;
}
case R.id.wicketSA: {
wicketsSA += 1;
displayScoreSA(scoreSA, wicketsSA);
break;
}
case R.id.resetScore: {
scoreIndia = 0;
scoreSA = 0;
wicketsIndia = 0;
wicketsSA = 0;
displayScoreIndia(scoreIndia, wicketsIndia);
displayScoreSA(scoreSA, wicketsSA);
break;
}
}
}
@SuppressLint("SetTextI18n")
public void displayScoreIndia(int score, int wickets) {
TextView scoreIndiaText = findViewById(R.id.scoreIndiaText);
TextView wicketsIndiaText = findViewById(R.id.wicketsIndiaText);
scoreIndiaText.setText(String.valueOf(score));
wicketsIndiaText.setText(" / " + String.valueOf(wickets));
}
@SuppressLint("SetTextI18n")
public void displayScoreSA(int score, int wickets) {
TextView scoreSAText = findViewById(R.id.scoreSAText);
TextView wicketsSAText = findViewById(R.id.wicketsSAText);
scoreSAText.setText(String.valueOf(score));
wicketsSAText.setText(" / " + String.valueOf(wickets));
}
}
XML 代码
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:src="@drawable/cricketground" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#99000000">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="horizontal">
<!-- INDIA COLUMN -->
<LinearLayout
android:orientation="vertical"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center_horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="fitXY"
android:layout_marginTop="16dp"
android:src="@drawable/ic_india" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="INDIA"
android:textColor="#FFFFFF"/>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginBottom="32dp"
android:gravity="center_horizontal">
<TextView
android:id="@+id/scoreIndiaText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0"
android:textSize="40sp"
android:fontFamily="sans-serif-thin"
android:textColor="#FFFFFF"/>
<TextView
android:id="@+id/wicketsIndiaText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" / 0"
android:textSize="20sp"
android:fontFamily="sans-serif-thin"
android:textColor="#FFFFFF"/>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal">
<Button
android:id="@+id/sixerIndia"
style="@style/CircleButton"
android:text="Sixer"/>
<Button
android:id="@+id/fourIndia"
style="@style/CircleButton"
android:text="Four"/>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal">
<Button
android:id="@+id/singleIndia"
style="@style/CircleButton"
android:text="Single"/>
<Button
android:id="@+id/twoIndia"
style="@style/CircleButton"
android:text="Two"/>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal">
<Button
android:id="@+id/noIndia"
style="@style/CircleButton"
android:text="No"/>
<Button
android:id="@+id/wideIndia"
style="@style/CircleButton"
android:text="Wide"/>
</LinearLayout>
<Button
android:id="@+id/wicketIndia"
style="@style/RoundedButtons"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginRight="16dp"
android:layout_marginLeft="16dp"
android:layout_gravity="center_horizontal"
android:text="wicket" />
</LinearLayout>
<!-- PARTITION -->
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:background="#33FFFFFF" />
<!--SOUTH AFRICA COLUMN -->
<LinearLayout
android:orientation="vertical"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center_horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="fitXY"
android:layout_marginTop="16dp"
android:src="@drawable/ic_south_africa" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="SOUTH AFRICA"
android:textColor="#FFFFFF"/>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginBottom="32dp"
android:gravity="center_horizontal">
<TextView
android:id="@+id/scoreSAText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0"
android:textSize="40sp"
android:fontFamily="sans-serif-thin"
android:textColor="#FFFFFF"/>
<TextView
android:id="@+id/wicketsSAText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" / 0"
android:textSize="20sp"
android:fontFamily="sans-serif-thin"
android:textColor="#FFFFFF"/>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal">
<Button
android:id="@+id/sixerSA"
style="@style/CircleButton"
android:text="Sixer"/>
<Button
android:id="@+id/fourSA"
style="@style/CircleButton"
android:text="Four"/>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal">
<Button
android:id="@+id/singleSA"
style="@style/CircleButton"
android:text="Single"/>
<Button
android:id="@+id/twoSA"
style="@style/CircleButton"
android:text="Two"/>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal">
<Button
android:id="@+id/noSA"
style="@style/CircleButton"
android:text="No"/>
<Button
android:id="@+id/wideSA"
style="@style/CircleButton"
android:text="Wide"/>
</LinearLayout>
<Button
android:id="@+id/wicketSA"
style="@style/RoundedButtons"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginRight="16dp"
android:layout_marginLeft="16dp"
android:layout_gravity="center_horizontal"
android:text="wicket" />
</LinearLayout>
</LinearLayout>
<Button
android:id="@+id/resetScore"
style="?android:attr/borderlessButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="reset"
android:textColor="#FFFFFF"
android:layout_gravity="center_horizontal"/>
</LinearLayout>
</FrameLayout>
</RelativeLayout>
解决方案
你在比较int
。所以只需使用
if (wicketsIndia == 10) {
btnWicketIndia.setEnabled(false);
}
编辑:
int wicketsSA = 0;
Button btnWicketIndia; // DECLARE IT HERE
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
...
btnWicketIndia = findViewById(R.id.wicketIndia); // ASSIGN HERE
...
}
推荐阅读
- c# - 从移动图库上传服务器上的个人资料照片
- mysql - MySQL Workbench EER/ERD 图 - 图形关系
- python - 谷歌表格“repeatCell”从现有单元格中去除格式
- c# - ASP.NET Core 应用程序中 Alpha 银行的结帐端点
- python - Python 列表理解返回错误的标签
- excel - 比较不同工作表中的两列
- php - 使用每个特征或孩子向班级添加信息
- android - 如何在 Android Studio 中打开项目,出现错误
- node.js - 我们可以使用 node-gcm 模块发送字符串以外的发送数据类型吗?
- ios - 在 ios 中禁用 ionic http 请求缓存