在安卓上!我需要获取用户输入(触摸事件、键盘事件)。有什么办法吗?在java代码中,似乎没有办法。原生代码呢?
5 回答
In java code, It seems there is no way.
=> 抱歉,有一种方法可以检测用户所做的任何操作并使用应用程序。
一些例子:
其实我不知道你到底是什么意思。您是指在 EditText 上输入文本还是在一般情况下触摸某些东西?
如果你的意思是文本,你可以使用 TextWatcher http://developer.android.com/reference/android/text/TextWatcher.html
如果您的意思是直接在 View 上,您可以使用上面提到的 OnTouchListener。
https://developer.android.com/reference/android/app/Activity.html#onUserInteraction()
Activity
public void onUserInteraction ()
在 API 级别 3 中添加 每当将键、触摸或轨迹球事件分派到 Activity 时调用。如果您希望知道用户在您的活动运行时以某种方式与设备进行了交互,请实施此方法。这个回调和 onUserLeaveHint() 旨在帮助活动智能地管理状态栏通知;具体来说,用于帮助活动确定取消通知的适当时间。
对活动的 onUserLeaveHint() 回调的所有调用都将伴随对 onUserInteraction() 的调用。这可以确保您的活动将被告知相关的用户活动,例如下拉通知窗格并触摸那里的项目。
请注意,此回调将为开始触摸手势的触摸动作调用,但可能不会为随后的触摸移动和触摸动作调用。
触摸你可以使用
mView.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
//show dialog here
return false;
}
});
如果您的 YourActivity 实现 OnTouchListener 您可以获得事件以及用户在屏幕上触摸的位置:
public class YourActivity extends Activity implements OnTouchListener {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
System.out.println("I touched: "+event.getX()+"-"+event.getY());
}
}