【问题标题】:Android SearchView OnClickListenerAndroid SearchView OnClickListener
【发布时间】:2016-04-19 15:47:49
【问题描述】:

我的项目上有一个可用的 SearchView(在工具栏上)。我有一个检查网络连接的布尔方法。

我要做什么:

如果 myApp 处于离线状态,当用户点击搜索图标时,不允许 searchView 展开并打开一个对话框...

是否可以不扩展 SearchView 类?

谢谢。

【问题讨论】:

  • 看来这个question 可能对你有用。在您的搜索视图上设置一个 onClickListener,然后在 click 方法中调用 clearFocus()
  • 嗨@HB3.14,感谢您的回复。我试图在 onClick(View v) 中调用 clearFocus(),但是 SearchView 的文本输入正在打开。我需要阻止文本输入字段打开。
  • 如果 boolean 方法是从 onCreate 方法中调用的,那么您可以在创建活动时通过调用 view.setInputType(InputType.TYPE_NULL) 禁用 searchView 参见question
  • 对不起@HB3.14,Its not what Im 正在寻找。我不想显示搜索框(编辑文本):i.ytimg.com/vi/KbaIRPPIk-4/hqdefault.jpg

标签: android searchview


【解决方案1】:

制作类似的东西:

 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();
}

【讨论】:

    猜你喜欢
    • 2013-01-28
    • 1970-01-01
    • 2016-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-09
    • 2020-02-07
    相关资源
    最近更新 更多