在每个onClick事件上隐藏软键盘

时间:2016-01-05 12:41:04

标签: android view onclicklistener

我使用抽象类来实现OnClickListener

public abstract class HideKeyboardClickListener extends View implements View.OnClickListener {

    public HideKeyboardClickListener(Context context) {
        super(context);
        setOnClickListener(this);
        AppUtils.hideKeyboard((Activity) context);
    }

    @Override
    public void onClick(View v) {
    }
}

并像 -

一样使用它
button.setOnClickListener(new HideKeyboardClickListener(mActivity) {
 @Override
 public void onClick(View v) {
  // Handle Click
 }
});

但我没有收到任何点击事件。

3 个答案:

答案 0 :(得分:1)

第1步。 //首先创建一个BaseActivity类,如下所示。无需在你的清单中添加它。

public class MyBaseActivity extends AppCompatActivity implements View.OnClickListener{


    @Override
    public void onResume() {
        super.onResume();

    }

    @Override
    public void onStop() {
        super.onStop();

    }

    @Override
    public void onClick(View view) {
        //call method to hide keyboard
    }
}

第2步。 //然后在所有Activity类中扩展此活动类,就像这样..

public class HomeActivity extends MyBaseActivity {
}

这两个步骤足以满足您的需求..它不会影响您的应用程序

答案 1 :(得分:0)

将此代码放在按钮上

            InputMethodManager inputManager = (InputMethodManager)
            getSystemService(INPUT_METHOD_SERVICE); 

inputManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(),
               InputMethodManager.HIDE_NOT_ALWAYS);

答案 2 :(得分:0)

尝试这种方法

 public static void hideKeyboard(Context context, View view) {
        InputMethodManager inputMethodManager = (InputMethodManager) context.getSystemService(Activity.INPUT_METHOD_SERVICE);
        inputMethodManager.hideSoftInputFromWindow(view.getWindowToken(), InputMethodManager.HIDE_IMPLICIT_ONLY);
        inputMethodManager.hideSoftInputFromWindow(view.getApplicationWindowToken(), 0);
    }