2011-12-30 2 views
-1

Если я нажимаю любой алфавит/номер при запуске приложения, EditText активируется автоматически и начинает поиск соответствующей строки.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 постоянно и не получает фокус снова, даже если она нажата.

Что я делаю неправильно?

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

ответ

0

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

android:focusable="true" 
android:focusableInTouchMode="true" 
+0

Я изменил свой ответ. Это может решить. –

+0

да, 3 из них. Но как это имеет значение? – GAMA

+0

Вы можете перемещать фокус в один из TextView при запуске активности. Поэтому он легко решает вашу проблему. –

0

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

<requestFocus/> 

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

requestFocus() метод

+0

Я попробовал' editText.setFocusable (правда); editText.requestFocus(); 'в моем' onClick() 'to' editText', но не повезло ... – GAMA

+0

Хорошо, тогда у меня нет ответа. –

0

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

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

Добавьте это в соответствующий Java-код действия.

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

    } 
+0

@GAMA: Можете ли вы также опубликовать метод onCreate вашей деятельности? И я надеюсь, что мое предположение, что вы говорите о мягкой клавиатуре, верно. –

Смежные вопросы