【发布时间】:2020-10-22 12:55:46
【问题描述】:
我目前正在制作一个投票应用程序,当点击按钮时,它会从名称“Kiwi”更改为点击切换按钮时按钮的点击量。再次单击切换按钮时,它会恢复为按钮的名称,然后再次单击会显示单击次数。我的问题是,当我想单击显示的按钮以增加单击次数时,它不会再添加一次单击,只有在按钮显示名称而不是计数时才会这样做。任何人都知道我是否做错了什么,这是我的代码:
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<ImageView
android:id="@+id/buzzyBeeImg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/buzzybeeimage"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.165"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.074"
app:srcCompat="@drawable/buzzybee" />
<ImageView
android:id="@+id/gumbootsImg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/gumbootsimage"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.807"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.074"
app:srcCompat="@drawable/gumboots" />
<ImageView
android:id="@+id/kiwiImg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/kiwiimage"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.133"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.557"
app:srcCompat="@drawable/kiwi" />
<ImageView
android:id="@+id/tikiImg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/tikiimage"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.855"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.557"
app:srcCompat="@drawable/tiki" />
<Button
android:id="@+id/buzzyBeeBt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/buzzy_bee"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.196"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.364" />
<Button
android:id="@+id/gumbootsBt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/gumboots"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.797"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.364" />
<Button
android:id="@+id/kiwiBt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/kiwi"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.188"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.751" />
<Button
android:id="@+id/tikiBt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/tiki"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.767"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.751" />
<Button
android:id="@+id/toggleCounterBt"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="75dp"
android:layout_marginLeft="75dp"
android:layout_marginEnd="75dp"
android:layout_marginRight="75dp"
android:text="@string/toggle_counters"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.482"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.956" />
<TextView
android:id="@+id/leaderTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/current_leader"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.853" />
public class MainActivity extends AppCompatActivity {
// Creates Hash map
private static HashMap<String, Integer> votes = new HashMap<>();
private int kiwiCounter = 0;
private int tikiCounter = 0;
private int gumbootsCounter = 0;
private int buzzyBeeCounter = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Sets references to widgets
final Button btKiwi = findViewById(R.id.kiwiBt);
final Button bttiki = findViewById(R.id.tikiBt);
final Button btGumboots = findViewById(R.id.gumbootsBt);
final Button btBuzzyBee = findViewById(R.id.buzzyBeeBt);
final Button btToggleCounter = findViewById(R.id.toggleCounterBt);
final TextView txtLeader = findViewById(R.id.leaderTextView);
btToggleCounter.setTag(1);
// Populating
votes.put("Kiwi",0);
votes.put("Tiki",0);
votes.put("Gumboots",0);
votes.put("Buzzy Bee",0);
btKiwi.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v) {
kiwiCounter++;
votes.put("Kiwi", votes.get("Kiwi") + 1);
String winnerCupcake = "";
Integer winnerVotes = 0;
if (votes.get("Kiwi") > winnerVotes){
winnerVotes = votes.get("Kiwi");
winnerCupcake = "Kiwi";
}
if (votes.get("Tiki") > winnerVotes){
winnerVotes = votes.get("Tiki");
winnerCupcake = "Tiki";
}
if (votes.get("Gumboots") > winnerVotes){
winnerVotes = votes.get("Gumboots");
winnerCupcake = "Gumboots";
}
if (votes.get("Buzzy Bee") > winnerVotes){
winnerVotes = votes.get("Buzzy Bee");
winnerCupcake = "Buzzy Bee";
}
txtLeader.setText("Current Leader: " + winnerCupcake);
}
});
bttiki.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v){
tikiCounter++;
String winnerCupcake = "";
Integer winnerVotes = 0;
votes.put("Tiki", votes.get("Tiki")+1);
if (votes.get("Kiwi") > winnerVotes){
winnerVotes = votes.get("Kiwi");
winnerCupcake = "Kiwi";
}
if (votes.get("Tiki") > winnerVotes){
winnerVotes = votes.get("Tiki");
winnerCupcake = "Tiki";
}
if (votes.get("Gumboots") > winnerVotes){
winnerVotes = votes.get("Gumboots");
winnerCupcake = "Gumboots";
}
if (votes.get("Buzzy Bee") > winnerVotes){
winnerVotes = votes.get("Buzzy Bee");
winnerCupcake = "Buzzy Bee";
}
txtLeader.setText("Current Leader: " + winnerCupcake);
}
});
btGumboots.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v){
gumbootsCounter++;
String winnerCupcake = "";
Integer winnerVotes = 0;
votes.put("Gumboots", votes.get("Gumboots")+1);
if (votes.get("Kiwi") > winnerVotes){
winnerVotes = votes.get("Kiwi");
winnerCupcake = "Kiwi";
}
if (votes.get("Tiki") > winnerVotes){
winnerVotes = votes.get("Tiki");
winnerCupcake = "Tiki";
}
if (votes.get("Gumboots") > winnerVotes){
winnerVotes = votes.get("Gumboots");
winnerCupcake = "Gumboots";
}
if (votes.get("Buzzy Bee") > winnerVotes){
winnerVotes = votes.get("Buzzy Bee");
winnerCupcake = "Buzzy Bee";
}
txtLeader.setText("Current Leader: " + winnerCupcake);
}
});
btBuzzyBee.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v){
buzzyBeeCounter++;
String winnerCupcake = "";
Integer winnerVotes = 0;
votes.put("Buzzy Bee", votes.get("Buzzy Bee")+1);
if (votes.get("Kiwi") > winnerVotes){
winnerVotes = votes.get("Kiwi");
winnerCupcake = "Kiwi";
}
if (votes.get("Tiki") > winnerVotes){
winnerVotes = votes.get("Tiki");
winnerCupcake = "Tiki";
}
if (votes.get("Gumboots") > winnerVotes){
winnerVotes = votes.get("Gumboots");
winnerCupcake = "Gumboots";
}
if (votes.get("Buzzy Bee") > winnerVotes){
winnerVotes = votes.get("Buzzy Bee");
winnerCupcake = "Buzzy Bee";
}
txtLeader.setText("Current Leader: " + winnerCupcake);
}
});
btToggleCounter.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v) {
final int status = (Integer)v.getTag();
if(status== 1){
btKiwi.setText(Integer.toString(kiwiCounter));
bttiki.setText(Integer.toString(tikiCounter));
btGumboots.setText(Integer.toString(gumbootsCounter));
btBuzzyBee.setText(Integer.toString(buzzyBeeCounter));
v.setTag(0);
}
else {
btKiwi.setText("Kiwi");
bttiki.setText("Tiki");
btGumboots.setText("Gumboots");
btBuzzyBee.setText("Buzzy Bee");
v.setTag(1);
}
}
});
}
}
【问题讨论】:
标签: java android android-studio button