#java #android
#java #Android
Вопрос:
Я новичок, пытающийся создать приложение для подсчета голосов. Для создания этого я использовал видео с канала newboston.
package com.example.tasbih2;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity {
int counter;
Button tap, reset;
TextView display, words;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
counter = 0;
tap = (Button) findViewById(R.id.button1);
reset = (Button) findViewById(R.id.resetbutton);
words = (TextView) findViewById(R.id.words);
display = (TextView) findViewById(R.id.counter);
if (counter > 10){
words.setText("C");
}
else if (counter > 7){
words.setText("B");
}
else{
words.setText("A");
}
//This is the command to add a count
tap.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
counter ;
display.setText(" " counter);
}
});
reset.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
counter = 0;
display.setText(" " counter);
}
});
}
Я много раз пытался запустить программу. Я хотел, чтобы приложение было таким, чтобы, когда счетчик достигал определенного числа, запись поверх числа менялась. Каким-то образом, когда счетчик достигает цифры 8, надпись сверху не меняется. Я попытался использовать функцию «while». Однако это просто разбило мое приложение. Может кто-нибудь подсказать мне, как мне сделать мою программу так, чтобы функция «если» регулярно проверялась, если счетчик достигает определенного числа?
Ответ №1:
Ваш код не работает, потому onCreate()
что вызывается только тогда, когда действие создается в первый раз, и поскольку ваша логика находится внутри него, она больше никогда не вызывается. Итак, теперь вы меняете значения при нажатии кнопки, поэтому переместите туда свою логику, и она будет вызываться каждый раз при нажатии кнопки. Просто измените свой код на это :
//This is the command to add a count
tap.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
counter ;
display.setText(" " counter);
if (counter > 10){
words.setText("C");
}
else if (counter > 7){
words.setText("B");
}
else{
words.setText("A");
}
}
});
reset.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
counter = 0;
display.setText(" " counter);
words.setText("A");
}
});
Ответ №2:
Переместите операторы if сюда:
tap.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
counter ;
if (counter > 10){
words.setText("C");
} else if (counter > 7){
words.setText("B");
} else {
words.setText("A");
}
display.setText(" " counter);
}
});
Таким образом, он проверяется каждый раз counter
, когда увеличивается.
Вам также нужно будет сбросить ее при сбросе счетчика:
reset.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
counter = 0;
words.setText("A");
display.setText(" " counter);
}
});