EditText активируется автоматически - PullRequest
0 голосов
/ 30 декабря 2011

Если я нажимаю любой алфавит / цифру при запуске приложения, EditText активируется автоматически и начинает поиск соответствующей строки.

Например, при запуске приложения, если пользователь нажимает алфавит 'A'по ошибке EditText извлек это и показывает все результаты, начиная с 'A'.

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

Я пробовал это в main.xml

    android:focusable="false"
    android:clickable="true"

и в activity class

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);      
            lsym = (ListView) findViewById(R.id.lsym);
        edsearch = (EditText) findViewById(R.id.edsearch);

            dbM = new DbManager(this);
            symbolarr = dbM.getSymbol();
            edsearch.setOnClickListener(new Button.OnClickListener() {
                @Override
                public void onClick(View v) {

                     edsearch.setFocusable(true);
                    edsearch.requestFocus();
                }
            });

            edsearch.addTextChangedListener(new TextWatcher() {

                @Override
                public void onTextChanged(CharSequence s, int start,
                        int before, int count) {

                    //FILTERING LIST
                }
            });
}

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

Что я делаю не так?

ЛЮБАЯ ПОМОЩЬ БУДЕТ ЖИЗНЬ-SAVER !!!

Ответы [ 3 ]

0 голосов
/ 30 декабря 2011

Либо ваш файл main.xml содержит тег

<requestFocus/>

, либо он включен в программном коде, который вы можете использовать

Метод requestFocus ()

0 голосов
/ 30 декабря 2011

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

Это исправление, которое я мог бы добавить, и просто предотвращает появление софт-клавиатуры в момент запуска действия. Это предотвратит случайные нажатия клавиш после запуска операции.

Добавьте это к рассматриваемому java-коду активности.

private void hideKeyboard() {
        getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

    }
0 голосов
/ 30 декабря 2011

Вы должны использовать атрибуты ниже для родительского макета

android:focusable="true"
android:focusableInTouchMode="true"
...