是否可以通过坐标或视图元素模拟“点击”(触摸屏)?
答案 0 :(得分:2)
可以在Android屏幕上模拟触摸事件。如果您拥有视图的坐标,则可以使用adb shell命令生成触摸事件。例如 -
adb shell输入tap x y
其中x和y是你的坐标。您可以从终端运行此命令。如果你想从android代码运行命令,那么使用“/ system / bin / input tap x y”并使用Runtime.getRuntime()方法运行它。详情请回复,乐意为您服务! :)
答案 1 :(得分:1)
大概你有一些你希望通过点击调用的东西。所以...如果它是一个真正的按钮,你可以在它上面调用performClick()
。如果它不是一个按钮,那么只要满足您希望执行的任何方法,即满足您期望的条件。如果你提供一些关于你真正想做的事情的更多细节,这可能会有所帮助。
答案 2 :(得分:1)
作为azdev suggests,试试这个:
view.setOnTouchListener(new OnTouchListener()
{
public boolean onTouch(View v, MotionEvent event)
{
Toast toast = Toast.makeText(
getApplicationContext(),
"View touched",
Toast.LENGTH_LONG
);
toast.show();
return true;
}
});
// Obtain MotionEvent object
long downTime = SystemClock.uptimeMillis();
long eventTime = SystemClock.uptimeMillis() + 100;
float x = 0.0f;
float y = 0.0f;
// List of meta states found here: developer.android.com/reference/android/view/KeyEvent.html#getMetaState()
int metaState = 0;
MotionEvent motionEvent = MotionEvent.obtain(
downTime,
eventTime,
MotionEvent.ACTION_UP,
x,
y,
metaState
);
// Dispatch touch event to view
view.dispatchTouchEvent(motionEvent);
答案 3 :(得分:0)
在视图上,是的。通过坐标,一个Java机器人,不是我所知道的。
例如:
Button buttonFoo = (Button)findViewById(R.id.button_foo);
buttonFoo.performClick();
答案 4 :(得分:-2)
您可以使用
View.performClick();