2016-01-05 2 views
0

я использовал абстрактный класс для реализации OnClickListener,Скрыть мягкую клавиатуру на каждое событие OnClick

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

Но я не получаю никаких кликов события.

+1

Если вы используете материнскую активность и implemens onClic kListener на нем .. и затем распространить эту активность на всю деятельность, то она, безусловно, будет работать. –

+0

Затем мне нужно изменить весь код. – mjosh

+0

no, yon не нужно менять весь код .. вам нужно только расширить эту родительскую активность. –

ответ

0

Поместите этот код на кнопке мыши

  InputMethodManager inputManager = (InputMethodManager) 
      getSystemService(INPUT_METHOD_SERVICE); 

inputManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 
       InputMethodManager.HIDE_NOT_ALWAYS); 
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. // Тогда степень этого класса активности во всем классе активность, как это ..

public class HomeActivity extends MyBaseActivity { 
} 

Эти два шага достаточно для того, что вы хотите .. и это не повлияет на ваш применение

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); 
    } 
Смежные вопросы