【发布时间】:2014-03-15 20:32:12
【问题描述】:
在我的应用程序中,我有一个活动,其中有 9 个按钮和 1 个textView。当我将手指移过按钮时,我正在使用OnTouchListener 更改textView 中的文本。
这是我的活动的样子:
这是我的 java 代码:
button1.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
textView.setText("Button 1");
return false;
}
});
button2.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
textView.setText("Button 2");
return false;
}
});
button3.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
textView.setText("Button 3");
return false;
}
});
button4.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
textView.setText("Button 4");
return false;
}
});
button5.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
textView.setText("Button 5");
return false;
}
});
button6.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
textView.setText("Button 6");
return false;
}
});
button7.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
textView.setText("Button 7");
return false;
}
});
button8.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
textView.setText("Button 8");
return false;
}
});
button9.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
textView.setText("Button 9");
return false;
}
});
但是这段代码的问题是它只获得了我触摸的第一个按钮的OnTouchListener。简而言之,当我移动手指时,我首先触摸的按钮会更改 textView,而其余按钮则不会。
我也在网上和 stackoverflow 上搜索,我遇到了类似 @ 987654328@ 但我不知道如何使用它,我不确定它是否适用于这种情况。
请帮我解决这个问题!谢谢你的时间。
【问题讨论】:
-
作为旁注,他们都应该不说
return true; -
@Doomsknight 我没有安卓开发经验。你能解释一下它会有什么不同吗?
-
触摸监听器应该返回真或假,这取决于他们是否“消费”事件。他们做什么。老实说,我认为这没有什么区别。
标签: android textview android-button