我试图在活动的软键盘上添加onClick。原因是我想检查用户是否当前处于活动状态。所以我所做的是,如果用户点击应用程序,我会重置一个不活动计时器。问题是,当用户与软键盘交互时,它不会调用功能onUserInteraction()
,这是我在活动中重写的功能。所以我需要帮助,找到一种方法来跟踪软键盘已被点击每个文本字段等我在活动中。 (我知道我可以在每个EditText字段中插入一个onclick查找器,但是我宁愿不这样做,因为如果我将使用许多EditText字段,它将不会那么好)Android在活动上添加onClick软键盘
回答
所以这是我结束了。我希望有其他的东西,但是这解决了这个问题。谢谢您的帮助!
public class ActivityEditText extends android.support.v7.widget.AppCompatEditText {
private TextWatcher tw;
public ActivityEditText(Context c)
{
super(c);
this.setOurTCL();
}
public ActivityEditText(Context context, AttributeSet attrs) {
super(context, attrs);
this.setOurTCL();
}
public ActivityEditText(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
this.setOurTCL();
}
private void setOurTCL()
{
this.tw = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
InactivityManager.resetTime();
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
}
};
this.addTextChangedListener(this.tw);
}
@Override
public void removeTextChangedListener(TextWatcher watcher) {
if(!watcher.equals(this.tw))
super.removeTextChangedListener(watcher);
}
}
您可以使用onUserInteraction()
函数的活动。您需要在您的活动中重写此功能。 此功能可在您与您的活动进行任何形式的互动时接听电话。
@Override
public void onUserInteraction() {
super.onUserInteraction();
// Your code goes here
}
你可以参考this example和also this answer,请参阅该文档
希望这有助于。
正如我在说明中所说的,我已经覆盖了该方法,但它似乎没有响应软键盘的交互。 – Linussjo
您可以扩展edittext来创建customedittext并在其中添加textwatcher或处理onclick来检查您的不活动计时器 –
要处理单个按键,请根据需要实施onKeyDown()或onKeyUp()。通常,如果你想确保你只接收一个事件,你应该使用onKeyUp()。如果用户按下并按住按钮,则会多次调用onKeyDown()。
创建一个类的一些东西一样UserInteractionEditText
,延长EditText
,并设置在类的onclick lisetener使用该类中的所有XML的布局,你使用EditText
你可以做一些这样的事:
public class UserInteractionEditText extends EditText implements View.OnClickListener {
public UserInteractionEditText(Context context) {
super(context);
}
public UserInteractionEditText(Context context, AttributeSet attrs) {
super(context, attrs);
}
public UserInteractionEditText(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
public void onClick(View v) {
//TODO:: Handle user Click Events
}
}
- 1. onClick控制软键盘 - Android
- 2. Android上的软键盘
- 3. Android - 将下一个和上一个按钮添加到软键盘中,该软键盘出现在我的活动中编辑文本的点击上
- 4. 在单一活动中隐藏软键盘 - Android
- 5. Android软键盘按键振动
- 6. 活动开始时显示软键盘
- 7. 当我在活动group.Tabs的子活动打开软键盘的Android
- 8. Android的软键盘
- 9. Android:检测用户不活动/检测(软键盘)键盘输入
- 10. 在Android中完成键盘上隐藏软键盘?
- 11. Android软键盘 - 需要Android软键盘的源代码AOSP
- 12. 在Android中,如何将视图添加到软键盘?
- 13. 停止Android软键盘闪烁的黑色切换活动
- 14. 当软键盘被激活时,Android webview向下滚动
- 15. 试图从活动创建Android软键盘
- 16. 如何禁用特定活动的Android软键盘?
- 17. 将按钮添加到软键盘
- 18. 如何在软键盘上的建议中添加单词
- 19. 在软键盘上添加自定义图释
- 20. Android上的数字软键盘
- 21. 当一项活动加载时,又压低软键盘...
- 22. Android软键盘和输入动作
- 23. Android - 数字(浮动)软键盘
- 24. 在对话框活动中自动显示软键盘
- 25. android软键盘事件
- 26. Android软键盘覆盖EditText?
- 27. Appcelerator Titanium Android软键盘
- 28. 在软键盘上显示'完成'键
- 29. 在android软键盘中禁用/检测键盘解锁键
- 30. 移动软键盘上方的布局
你能不能细说一下。当前活动的含义是什么 - 如果应用程序已打开或用户正在屏幕上执行操作? – Praga
@Praga这意味着用户正在屏幕上执行操作。 – Linussjo
然后你不需要依赖键盘操作。你可以与Faa km的答案一起去。 – Praga