Android studio set focus

How set focus on View Android development example

Set focus on a View in Android application example source code for Button, EditText, View, TextView, isFocused(), requestFocus() .

397LW NO topic_id

Další témata . (Topics)

Show keyboard | show-keyboard

WebView change height Android Example | webview-change-height-android-example

Display screen size resolution density dimension Android | display-screen-dimension

Get display, screen resolution — dimension Android phone development example source code.

Example:
HTC Desire HD
11 (4.3) Diagonal cm (in)
480×800 Resolution
85 (217) ppcm (PPI — Pixels per inch)

480 / 217 = 2.21 inch
800 / 217 = 3.69 inch
Math.sqrt( 2.21*2.21 + 3.69 * 3.69) = 4.3 inch — diagonal

Typical screen widths:

320dp: a typical phone screen (240×320 ldpi, 320×480 mdpi, 480×800 hdpi, etc).
480dp: a tweener tablet like the Streak (480×800 mdpi).
600dp: a 7” tablet (600×1024 mdpi).
720dp: a 10” tablet (720×1280 mdpi, 800×1280 mdpi, etc).

Emulator skins in the Android SDK
//developer.android.com/guide/practices/screens_support.html

Small screen QVGA (240×320) 480×640
Normal screen WQVGA400 (240×400)

WQVGA432 (240×432)

HVGA (320×480) WVGA800 (480×800)

WVGA854 (480×854)

600×1024

640×960
Large screen WVGA800** (480×800)

WVGA854** (480×854)

WVGA800* (480×800)

WVGA854* (480×854)

600×1024

Extra Large screen 1024×600 WXGA (1280×800)

1024×768
1280×768

1536×1152
1920×1152

1920×1200

2048×1536
2560×1536

2560×1600

* To emulate this configuration, specify a
custom density of 160 when creating an AVD that uses a WVGA800 or WVGA854 skin.

** To emulate this configuration, specify a custom density of 120 when creating an AVD that
uses a WVGA800 or WVGA854 skin.

† This skin is available with the Android 3.0 platform

Android Emulator PC keyboard shortcuts | android-emulator-pc-keyboard-shortcuts

Basic shortcuts for Android Emulator.

ImageView change image Android example | imageview-change-image-android-example

How to change the image dynamically in ImageView and button setOnClickListener Android sample.

Main.java

main.xml
Put into res/drawable this pictures:

Editace: 2011-10-09 13:08:13
Počet článků v kategorii: 397
Url:how-set-focus-on-view-android-development-example

Источник

Настроить фокус на EditText

У меня есть EditText-Field и установите для него OnFocusChangeListener. Когда он потерял фокус, вызывается метод, который проверяет значение EditText на единицу в базе данных. Если возвращаемое значение метода истинно, отображается тост, и фокус должен снова вернуться к EditText. Фокус должен всегда возвращаться к EditText, и клавиатура должна показывать, пока возвращаемое значение метода не будет ложным.

EDIT: Я думаю, что я еще не сделал свою реальную проблему совершенно ясной: ни один другой элемент на экране не сможет редактировать, пока значение EditText не будет изменено до значения, что делает метод «checkLiganame (liganame) «Return false. Только EditText-поле должно быть доступно для редактирования.

Вот мой код (который не работает для меня):

Этот код приводит к следующему результату: после того, как EditText потерял фокус, фокус переходит в EditText, но я больше не могу редактировать текст.

EDIT2: Изменен мой код. Сценарий:

Я нажимаю на первый EditText и помещаю в него строку, которая уже находится в базе данных. Тост показывает. Теперь я больше не могу редактировать свою строку. Я нажимаю «next» на клавиатуре, и фокус остается на первом EditText. Я пытаюсь редактировать свою строку, но ничего не происходит. Вместо этого моя новая строка отображается во втором EditText. Я нажимаю на стрелку назад своего устройства и отбрасываю на первый и второй EditText -> нет клавиатуры.

Вот мой новый код:

Просто поставьте эту строку на свой onCreate()

Это работает для меня, надеюсь, что это поможет

Запросить фокус недостаточно, чтобы показать клавиатуру.

Чтобы получить фокус и показать клавиатуру, вы должны написать что-то вроде этого:

EDIT: добавление дополнительной информации в ответ после добавления метода checkLiganame.

В методе checkLiganame вы проверяете, является ли курсор нулевым. Курсор всегда возвращает объект, поэтому проверка на null не делает ничего. Однако проблема заключается в строке db.close();

Когда вы закрываете соединение с базой данных, Cursor становится недействительным и, скорее всего, обнуляется.

Закройте базу данных после того, как вы выберете значение.

Вместо того, чтобы проверять курсор на значение null, вы должны проверить, больше ли число возвращаемых строк больше 0: if (cursor.getCount ()> 0), а затем установить значение boolean в true, если это так.

EDIT2: Итак, вот какой код, как заставить его работать. EDIT3: Извините, неправильный код, который я добавил …; S

Во-первых, вам нужно очистить фокус, если другой EditText получает фокус. Это можно сделать с помощью myEditText.clearFocus() . Тогда в вашем onFocusChangeListener вам все равно, если вначале EditText имеет фокус или нет, поэтому onFocusChangeListener может выглядеть примерно так:

Замените первую проверку, if(liganame.length() == 0) с вашей собственной проверкой, тогда она должна работать. Обратите внимание, что все представления EditText должны были установить их onFocusChangeListener тому же слушателю, что и в примере.

Код Darwind не показывал клавиатуру.

Это работает для меня:

В случае, если клавиатура не отображается, попробуйте заставить:

Это изменяет фокус EditText при нажатии кнопки:

Если мы создадим EditText динамически, тогда мы должны установить requestFocus (), как показано ниже.

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

Он устанавливает фокус только на соответствующий компонент EditText.

Я не знаю, нашел ли вы alredy решение, но для вашей проблемы с редактированием после повторного запроса:

Вы пытались вызвать метод selectAll() или setSelection(0) (если emtpy) на вашем edittext1?

Пожалуйста, дайте мне знать, если это поможет, поэтому я отредактирую свой ответ на полное решение.

Для Xamarin.Android я создал это расширение.

Вы можете сделать это с помощью одной строки:

Источник

Установить фокус на любой элемент списка в андроиде

У меня есть listview, который содержит textviews как его элементы.

  1. Теперь я хочу, чтобы первый элемент списка был автоматически сфокусирован при запуске приложения
  2. Как настроить фокус на любом элементе списка, когда я нажимаю на другое представление, например кнопку?

Настройка выбора и настройка фокуса – две разные вещи. Если вы хотите просто setSelection на какой-то элемент, вы можете использовать нижеприведенный код.

Но это определенно не означает, что Listview сосредоточен. Для фокусировки вы должны использовать

Для изменения фокусировки одним нажатием кнопки вы можете поместить код на кнопку onClick() .

ListView имеет метод setSelected, который принимает индекс элемента в списке.

Наверное, я был в той же ситуации. Я хотел иметь возможность управлять фокусом списка с программным обеспечением кнопками.

Одно из решений – иметь дело с setFocusableInTouchMode , но я никогда не добился его работы.

Другое решение – забыть о фокусе и использовать проверенный список. Сначала настройте listview на «режим одиночного выбора» в XML или в java: Mylistview.setChoiceMode(1)

Затем вы сможете проверить любой предмет, который вы хотите, с помощью Mylistview.setItemChecked(position, true)

Поэтому, когда вы Mylistview.setItemChecked(0, true) приложение (OnCreate), используйте Mylistview.setItemChecked(0, true) чтобы проверить свой первый элемент.

Затем, если вы хотите, чтобы ваша кнопка выбирала следующий элемент для примера, используйте:

Вы можете указать внешний вид, когда элемент отмечен или нет, и есть разные предварительно построенные списки.

Если вы хотите больше объяснений, см. Мой пост

Для меня проблема была решена

Ваш ListView должен выглядеть следующим образом:

Источник

Android: заставить EditText удалить фокус? [дубликат]

этот вопрос уже есть ответ здесь:

Я хотел бы иметь возможность удалить фокус из EditText. Например, если клавиатура появляется, и пользователь скрывает ее с помощью кнопки «назад», я хотел бы, чтобы фокус и курсор исчезли. Как можно ли это сделать?

19 ответов:

Вы можете добавить это onCreate и он будет скрывать клавиатуру каждый раз, когда начинается activty.

вы также можете программно изменять фокус на другой элемент.

вы можете сделать курсор и фокус отпадают сами

но обнаружить, когда скрытие клавиатуры-это тяжелая работа.

добавить LinearLayout до EditText в XML.

или вы можете сделать то же самое, добавив эти строки для просмотра перед вашим «EditText».

снимите фокус, но оставайтесь фокусируемым:

EditText потеряет фокус, но может получить его снова на новом событии касания.

это работает для меня

Edit в ссылке они предлагают использовать LinearLayout, но простой вид будет работать

затем, если этот » вор » помещается в верхней части макета (чтобы быть первым фокусируемым элементом), вызывает clearFocus() будет работать.

добавьте эти два свойства в родительский макет (например: линейный макет, относительный макет)

Это будет делать трюк 🙂

вы также можете включить android: windowSoftInputMode= «stateAlwaysHidden» в разделе манифеста действий.

но в XML-способе.

FYI, вы также можете скрыть клавиатуру с кодами:

Если вы не используете его и все равно та же проблема

пользователей LinearLayout как родитель и установить

надеюсь, что это поможет вам.

попробуйте использовать это на ваш взгляд это сработало для меня:

добавить в родительский макет, где вы положили свой EditText этой android:focusableInTouchMode=»true»

чтобы скрыть клавиатуру при запуске активности.. напишите следующий код в onCreate()..

чтобы очистить фокус и удалить курсор из edittext.

Это мой самый первый ответ на SO, так что не будьте слишком суровы ко мне, если есть ошибки. : D

есть несколько ответов, плавающих вокруг так, но я чувствую желание опубликовать мое полное решение, потому что это свело меня с ума. Я схватил кусочки со всех сторон, так что простите меня, если я не даю соответствующие кредиты всем. 🙂

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

для вашего макета вам нужен родитель ваш EditText и Родительский вид определено что-то вроде этого:

Итак, мне нужно было несколько вещей здесь. Мне нужно было иметь заполнитель для моего EditText-который является то —

это произошло на EditText не быть сфокусированным на входе активность и активность сам при его установке этот параметр помогает, так что вы можете установить onTouchListener на нем, чтобы украсть фокус от EditText.

сейчас в работе:

несколько ответов на биты, которые я нашел на этой странице вопроса, и часть с решением активности, которое я нашел на этом блог. Остальное, что я пропустил, что я должен был выяснить сам, было очищено сосредоточьтесь на EditText который я добавил к обоим внутри setOnEditorActionListener и onTouchLister для Родительский вид.

надеюсь, что это помогает кто-то и экономит их время. 🙂

в комментариях вы спросили, Можно ли сфокусировать другое представление вместо EditText. Да, может. Используйте .requestFocus() метод для представления, которое вы хотите сфокусировать в начале (в методе onCreate ())

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

вы также можете включить android:windowSoftInputMode=»stateAlwaysHidden» в разделе манифест действий.

у меня была та же проблема. Это сделало меня более чем сумасшедшим.

у меня был расширенный диалог с ScrollView, который имел TableLayout с расширенным LinearLayout, который содержал панель поиска и EditText.

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

Я пробовал почти все решения этой темы и ни один не работал для меня.

Так вот мой простое решение: (text = EditText)

кстати я не для его решения использовался любой из следующих фрагментов:

И не используется элемент распорки, как вид с шириной и высотой 1dp.

надеюсь, это поможет кому-то: D

The EditText сможет получить фокус, когда пользователь прикоснется к нему. Когда основной макет (активность, диалог и т. д.) становится видимым EditText не получает автоматически фокус, даже если это первый вид в макете.

Источник

Читайте также:  Чем синхронизировать контакты android с google
Оцените статью
Emulated Device Key Keyboard Key
Home HOME
Menu (left softkey) F2 or Page-up button
Star (right softkey) Shift-F2 or Page Down
Back ESC
Call/dial button F3
Hangup/end call button F4
Search F5
Power button F7
Audio volume up button KEYPAD_PLUS, Ctrl-5
Audio volume down button KEYPAD_MINUS, Ctrl-F6
Camera button Ctrl-KEYPAD_5, Ctrl-F3
Switch to previous layout orientation (for example, portrait, landscape) KEYPAD_7, Ctrl-F11
Switch to next layout orientation (for example, portrait, landscape) KEYPAD_9, Ctrl-F12
Toggle cell networking on/off F8
Toggle code profiling F9 (only with -trace startup option)
Toggle fullscreen mode Alt-Enter
Toggle trackball mode F6
Enter trackball mode temporarily (while key is pressed) Delete
DPad left/up/right/down KEYPAD_4/8/6/2
DPad center click KEYPAD_5
Onion alpha increase/decrease KEYPAD_MULTIPLY(*) / KEYPAD_DIVIDE(/)