我有一个网格视图,其中放置了2d按钮数组。我在网格视图上设置了ontouchlistener。当触摸第一个按钮时,我如何在网格视图ontouchlistener中使用if语句来检测按下[0] [0]是否被按下/触摸
gv.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
final int actionPeformed = event.getAction();
switch(actionPeformed) {
case MotionEvent.ACTION_DOWN: {
final float x = event.getX();
final float y = event.getY();
lastXAxis = x;
lastYAxis = y;
textView2.setText("Button pressed");
break;
}
case MotionEvent.ACTION_MOVE: {
final float x = event.getX();
final float y = event.getY();
final float dx = x - lastXAxis;
final float dy = y - lastYAxis;
ed4 = (EditText) findViewById(R.id.editText4);
xAxis += dx;
yAxis += dy;
ed4.setText(Float.toString(yAxis));
break;
}
case MotionEvent.ACTION_UP: {
textView2.setText("released");
}
按下按钮[0] [0]时,按钮的颜色应该改变。类似地,如果按下按钮[0] [0]和[0] [1],则两个按钮的颜色应该改变。如何实现这个目标?
答案 0 :(得分:0)
这个怎么样?
if(button[0][0].getId() == R.id.buttonIDInXML) { }
View.getId()返回int值,表示您在xml文件中设置的ID。按钮也是视图,所以这对我有帮助。
答案 1 :(得分:0)
尝试调用类似这样的内容来获取按下按钮的视图。 按下/释放按钮视图后,它应该很容易改变颜色
override func viewDidLoad() {
super.viewDidLoad()
// allow cells to be selected
tableView.allowsSelection = true
// ensure that deselect is called on all other cells when a cell is selected
tableView.allowsMultipleSelection = false
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableVIew.cellForRow(at: indexPath as IndexPath)?.accessoryType = .checkmark
}
func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) {
tableVIew.cellForRow(at: indexPath as IndexPath)?.accessoryType = .none
}