例如:

如果点击右边“待定”时,左边输入法失去焦点

EditText:et_management_expense

RadioButton:

radioButton_management_expense_1

radioButton_management_expense_2

RadioGroup:

radioGroup_management_expense

et_management_expense.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                ForLog.showError("我获取焦点了"+hasFocus);
                if(hasFocus){
                    radioButton_management_expense_1.setChecked(true);
                }
            }
        });
        radioButton_management_expense_2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(et_management_expense.hasFocus()) {
                    //et_management_expense.clearFocus();
                    radioGroup_management_expense.requestFocus();
                }
                new ForInput().close(activity);
            }
        });

最好为radioGroup_management_expense添加下面一句话:使其可以获取焦点

android:focusable="true"
                android:focusableInTouchMode="true"

其中new ForInput().close(activity);为关闭输入法的操作:

 public void close(Activity activity){
        if(activity==null){
            ForLog.showError("大事情,我在关闭输入法的时候,成功避免了一次闪退");
            return;
        }
        ((InputMethodManager)activity.getSystemService(Context.INPUT_METHOD_SERVICE))
                .hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
    }

results matching ""

    No results matching ""