Длинный клик Android против клика по умолчанию

У меня есть EditText, который сфокусирован, и кнопка, которая не сфокусирована.

Когда я нажимаю кнопку, EditText теряет фокус.

Когда я долго щелкаю по кнопке, EditText не теряет фокус.

Каков источник такого поведения? Я хочу добиться поведения длинного щелчка в щелчке по умолчанию, возможно ли это?


person Csharpest    schedule 22.01.2018    source источник


Ответы (1)


Поведение длинного щелчка по умолчанию для ClipBoard действий . Если вы хотите переопределить его одним щелчком мыши. Вы можете сделать это следующим образом.

editText=(EditText)findViewById(R.id.txt);
    editText.setOnLongClickListener(new View.OnLongClickListener() {
        @Override
        public boolean onLongClick(View v) {
            // Do your stuff
            return true;
        }
    });
    editText.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            editText.performLongClick();

        }
    });

Если вы делаете это, чтобы просто избавиться от проблемы с фокусировкой, то это не так.

person ADM    schedule 22.01.2018
comment
Если вы делаете это только для того, чтобы избавиться от проблемы с фокусировкой, вам не следует этого делать. Добавьте свой XML. - person ADM; 22.01.2018
comment
Я на самом деле хочу, чтобы это было наоборот, мой щелчок должен выполнять длинный щелчок. но я попробовал это, как вы только что показали (выполните лонглик в onclicklistener), и это не решило проблему с фокусом. - person Csharpest; 22.01.2018
comment
Смотрите обновленный ответ. Что именно вы хотите сделать при долгом щелчке, потому что если вы это сделаете, действия ClipBoard будут пропущены. - person ADM; 22.01.2018
comment
Меня не волнуют действия буфера обмена. На самом деле я использую xamarin.forms + xamarin.android. У меня есть edittext, у которого свойство focus bool привязано к видимости другого макета (сетка с несколькими кнопками). Когда я нажимаю одну из кнопок, фокус теряется на тексте редактирования. Я не хочу, чтобы фокус терялся. Запрос фокуса на нажатие кнопки также не работает, потому что будет небольшая продолжительность между потерянным фокусом текста редактирования и новым назначением ему фокуса. Я только что узнал, что длинный щелчок не приводит к тому, что текст редактирования теряет фокус. - person Csharpest; 22.01.2018
comment
По сути, это макет из 4 столбцов и 1-10 строк (динамически определяемых во время выполнения) и кнопок в каждом из столбцов/строк. Могу ли я воссоздать этот макет в (xamarin.) android (сейчас он сделан в xamarin.forms) и добавить его в представление EditTexts? Важно, чтобы этот макет переключался через фокус текста редактирования, и он не должен занимать место, а скорее перекрывать любые виды, которые находятся ниже текста редактирования. - person Csharpest; 22.01.2018