我使用抽象类来实现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
}
});
但我没有收到任何点击事件。
答案 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);
}