首页 > 解决方案 > 当手指移过按钮时在 logcat 中显示文本

问题描述

我现在被一个问题困住了一段时间。我的应用程序上有 2 个按钮(按钮 1 和按钮 2),我想拥有它,所以当我的手指移过第一个按钮时,它会说“在按钮 1 中”,然后当我将手指移动到按钮 2 时它会在 logcat 中说“在按钮 2 中”。

我现在可以单击这些按钮以显示文本,但我不希望这样。我希望能够在不将其从屏幕上取下来显示文本的情况下四处移动手指。我将不胜感激任何帮助,谢谢!

我的代码:

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

        buttonOne = (Button) findViewById(R.id.buttonOne);
        buttonTwo = (Button) findViewById(R.id.buttonTwo);



   buttonOne.setOnClickListener(new View.OnClickListener() {
       @Override
       public void onClick(View v) {
           Log.d(TAG, " In button 1 ");
       }
   });

   buttonTwo.setOnClickListener(new View.OnClickListener() {
       @Override
       public void onClick(View v) {
           Log.d(TAG, " In button 2 ");
       }
   });

使用链接我更改了我的代码,但它似乎没有工作:

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    rect1 = new Rect(buttonOne.getLeft(), buttonOne.getTop(),
            buttonOne.getRight(), buttonOne.getBottom());

    rect2= new Rect(buttonTwo.getLeft(), buttonTwo.getTop(),
            buttonTwo.getRight(), buttonTwo.getBottom());
}


public boolean onTouch (View v, MotionEvent event){
    if (event.getActionMasked() == (MotionEvent.ACTION_DOWN | MotionEvent.ACTION_MOVE)) {
        if (rect1.contains((int) event.getX(), (int) event.getY())) {
            Log.d(TAG, " in button1: ");
        }
        if (rect2.contains((int) event.getX(), (int) event.getY())) {
            Log.d(TAG, " in button2: ");
        }
    }
    return true;
}

标签: javaandroid

解决方案


推荐阅读