【问题标题】:How can i change the text of a textView every time i press a button? [duplicate]每次按下按钮时如何更改 textView 的文本? [复制]
【发布时间】:2017-06-06 17:04:55
【问题描述】:

我刚开始学习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”是默认值。我只是想知道我在这里缺少什么?

【问题讨论】:

    标签: java android


    【解决方案1】:

    您必须使用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);
        }
    
    });
    

    【讨论】:

    • 非常感谢它成功了!我想我必须检查一下 onclick 和 ontouch 之间的区别。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-17
      相关资源
      最近更新 更多