2016-04-19 2 views
1

У меня есть рабочий SearchView (на панели инструментов) в моем проекте. У меня есть логический метод проверки сетевого подключения.Android SearchView OnClickListener

Что I`m пытается сделать:

Если MYAPP в сети, когда пользователь нажимает на значок поиска, не позволяют расширить SearchView и открыть диалог ...

Можно без расширения класса SearchView?

Спасибо.

+0

Оказывается, что это [вопрос] (http://stackoverflow.com/questions/20482849/how-to-disable-searchview) может быть полезным для вас. Установите onClickListener в вашем окне поиска, а затем в методе щелчка clearFocus() – harveytoro

+0

Привет @ HB3.14, спасибо за ответ. Я попытался вызвать clearFocus() в onClick (View v), но текстовый ввод SearchView открывается. Мне нужно предотвратить открытие поля ввода текста. –

+0

Если логический метод вызывается из метода onCreate, вы можете отключить searchView при создании активности, вызвав view.setInputType (InputType.TYPE_NULL), см. [Вопрос] (http://stackoverflow.com/questions/11436018/disabling -searchview) – harveytoro

ответ

0

сделать что-то вроде этого:

public boolean onOptionsItemSelected(MenuItem item) { 

    switch (item.getItemId()){ 
     case android.R.id.yoursearchviewid: 
      if(!isNetworkAvailable(yourcontext)){ 
      item.setActionView(null); 
      Snackbar.make(yourview,"No internet contection.",Snackbar.LENGTH_LONG).setAction("Turn on", new View.OnClickListener() { 
        @Override 
        public void onClick(View v) { 
         defenicoes = new Intent(Settings.ACTION_WIFI_SETTINGS); 
         startActivity(defenicoes); 
        } 
       }).show();; 
      } 
      break; 
    } 
    return super.onOptionsItemSelected(item); 
} 

public boolean isNetworkAvailable(final Context context) { 
    final ConnectivityManager connectivityManager = ((ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE)); 
    return connectivityManager.getActiveNetworkInfo() != null && connectivityManager.getActiveNetworkInfo().isConnected(); 
}