Поскольку я хотел использовать это во фрагменте, а не в MainActivity, у меня не было возможности использовать onKeyDown и onKeyLongPress из MainActivity, единственным решением, которое я нашел, было расширение EditText в пользовательском классе и переопределение метода OnKeyUp и OnKeyLongPress и использование его в Фрагмент, который я хочу
public class CustomEditText extends EditText {
public CustomEditText(Context context) {
super(context);
init();
}
public CustomEditText(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public CustomEditText(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init();
}
private void init() {
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode >= 7 && keyCode <= 16) {
event.startTracking();
return true;
}
return super.onKeyDown(keyCode, event);
}
@Override
public boolean onKeyLongPress(int keyCode, KeyEvent event) {
if(keyCode >= 7 && keyCode <= 16) {
Log.v("Testing", "Long Key Press");
return true;
}
return super.onKeyLongPress(keyCode, event);
}
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
return super.onKeyUp(keyCode, event);
}
}
а затем нам нужно использовать это текстовое поле Custom EditText вместо обычного EditText в XML
<com.project.example.util.CustomEditText
android:id="@+id/et"
android:layout_width="match_parent"
android:layout_height="wrap_content"
</com.project.example.util.CustomEditText>
person
blueaac
schedule
09.06.2015