为什么我的TextViews表现得很奇怪?

时间:2014-07-03 21:30:15

标签: android textview

我正在创建一个相当毫无意义的Android应用程序,它有两个按钮和两个textview。

它的计数器int设置为0.

名为add的第一个按钮,向计数器添加1,第二个名为sub的按钮,从计数器中减去一个。

如果计数器大于1,则显示totalPlus文本视图,其中包含当前计数器值。

如果coutner等于0或更小,则显示totalMinus textview,并显示当前计数器值。

在这两种情况下,隐藏了不相关的文本视图。

我遇到的问题是,如果我在+5上,会显示顶部计数器,当我按下按钮时会看到递增。但是,如果我按下减法按钮,当前的文本视图会隐藏,直到我达到0或更少,其中minusTextView显示。它有两种方式。

[代码]

    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    counter = 0;
    add = (Button) findViewById(R.id.bAdd);
    sub = (Button) findViewById(R.id.bSub);
    totalPlus = (TextView) findViewById(R.id.totalPlus);
    totalMinus = (TextView) findViewById(R.id.totalMinus);

    add.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

            counter++;

            if (counter > 1)

               totalPlus.setVisibility(View.VISIBLE);
               totalMinus.setVisibility(View.INVISIBLE);
               totalPlus.setText("Your Total is " + counter);

        }
    });
    sub.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

            counter--;

            if (counter <0)

               totalMinus.setVisibility(View.VISIBLE);
               totalPlus.setVisibility(View.INVISIBLE);
               totalMinus.setText("Your Total is " + counter); 
        }

1 个答案:

答案 0 :(得分:0)

Java忽略缩进级别。如果if语句通过,则需要在要执行的所有三个语句周围使用大括号。

if (counter <0) { // <-- this
    totalMinus.setVisibility(View.VISIBLE);
    totalPlus.setVisibility(View.INVISIBLE);
    totalMinus.setText("Your Total is " + counter);
} // <-- and this

如果不包含这些大括号,Java只会将第一个语句视为if构造的一部分;其他两个语句在该构造之外,并将始终执行。