2016-04-19 12 views
1

私は、自分のプロジェクト上に動作するSearchView(ツールバー上)を持っています。私はチェックネットワーク接続のためのブールメソッドを持っています。 I`mがやろうと何Android SearchView OnClickListener

て、myAppは、検索アイコンをユーザーのクリックが、searchViewの拡張を可能にし、ダイアログを開かないオフラインの場合...

はそれが可能ですSearchViewクラスを拡張することなく

ありがとうございました。

+0

この[質問](http://stackoverflow.com/questions/20482849/how-to-disable-searchview)はあなたのために有用であることが表示されます。検索ビューでonClickListenerを設定し、次にclickメソッド呼び出しでclearFocus() – harveytoro

+0

こんにちは@HB3.14、返信ありがとうございます。私はonClick(View v)でclearFocus()を呼び出そうとしましたが、SearchViewのテキスト入力が開いています。私は、テキスト入力フィールドが開かないようにする必要があります。 –

+0

booleanメソッドがonCreateメソッド内から呼び出された場合、view.setInputType(InputType.TYPE_NULL)を呼び出してアクティビティを作成するときにsearchViewを無効にすることができます。[質問](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(); 
}