我每次按下按钮时如何更改textView的文本?
问题描述:
我刚刚开始学习android,并开始制作一个实验性应用程序。我的目标是当我按下按钮时,文本应该以这种方式更改:当它处于“OFF”状态时,按下按钮应使其成为“ON”并且相反。 这里是我的代码:我每次按下按钮时如何更改textView的文本?
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;
}
});
}
}
当我运行它,然后按下按钮,该应用程序显示了一秒钟,然后“ON”的一小部分“OFF”再试一次发生每次我按下按钮时, “ON”是默认值。我只想知道我在这里错过了什么?
答
您必须使用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);
}
});
答
有大量的MotionEvent
s产生了触摸。寻找Action
把你的代码放在里面event.getAction()==MotionEvent.ACTION_DOWN
非常感谢你的工作!我想我必须检查onclick和ontouch之间的区别。 –