每次按下按钮,如何更改textView的文本?

时间:2017-06-06 17:04:55

标签: java android

我刚刚开始学习android而且我开始制作一个实验性应用程序。我的目标是当我按下按钮时,文本应该以这种方式改变:当它是" OFF" ,按下按钮应该使它" ON"与此相反。 这是我的代码:

public class MainActivity extends AppCompatActivity {

    private TextView textView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        textView = (TextView) findViewById(R.id.TextView);
        Button button = (Button) findViewById(R.id.button);

        button.setOnTouchListener(new View.OnTouchListener(){

            @Override
            public boolean onTouch(View v, MotionEvent event) {
                String text="";
                    if (textView.getText().equals("ON")) {
                       text="OFF";
                    } else if (textView.getText().equals("OFF")) {
                        text="ON";
                    }
                textView.setText(text);
                return false;
            }

        });
    }
}

当我运行它并按下按钮时,应用程序显示" OFF"几分之一秒然后" ON"每次按下按钮都会发生这种情况。" ON"是默认值。我想知道我在这里缺少什么?

2 个答案:

答案 0 :(得分:3)

您必须使用setOnClickListener,而不是setOnTouchListener,因为触摸触摸比点击更敏感。写下这段代码:

button.setOnClickListener(new View.OnClickListener(){

    @Override
    public void onClick(View v) {
        String text="";
            if (textView.getText().equals("ON")) {
               text="OFF";

            }
            else if (textView.getText().equals("OFF")) {
                text="ON";

            }
        textView.setText(text);
    }

});

答案 1 :(得分:1)

触摸时会生成大量MotionEvent个。寻找Action 将您的代码放在event.getAction()==MotionEvent.ACTION_DOWN