Android 的一些监听

前言

Android 开发中比较常用的一些监听


一、键盘隐藏与显示还有防遮挡(这个不算监听)

            **

//隐藏键盘

**

  InputMethodManager imm = (InputMethodManager) getSystemService(GatherActivity.this.INPUT_METHOD_SERVICE);
                imm.hideSoftInputFromWindow(searchEt.getWindowToken(), 0);
			**

//显示键盘

**

        InputMethodManager inputManager = (InputMethodManager)searchEt.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
        inputManager.showSoftInput(searchEt, 0);


			**

软键盘,防止键盘震荡输入框

**
在你的activity中的oncreate中setContentView之前写上这个代码

 getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);

**

RecycView滑动监听

**

recycWorkRoderall.addOnScrollListener(new RecyclerView.OnScrollListener() {
    @Override
    public void onScrollStateChanged(@NonNull RecyclerView recyclerView, int newState) {
        super.onScrollStateChanged(recyclerView, newState);

    }

    @Override
    public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
        super.onScrolled(recyclerView, dx, dy);
        if(recycWorkRoderall.canScrollVertically(1)){
            Log.i(TAG, "direction 1: true");
        }else {
            Toast.makeText(getActivity(), "底部", Toast.LENGTH_SHORT).show();
        }
        if(recycWorkRoderall.canScrollVertically(-1)){
            Log.i(TAG, "direction -1: true");
        }else {
            Toast.makeText(getActivity(), "顶部", Toast.LENGTH_SHORT).show();
        }
    }
});

软键盘上搜索功能

searchEt.setOnEditorActionListener(new TextView.OnEditorActionListener() {
    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {

        Log.e("aaa","正在查询");
        if (actionId == EditorInfo.IME_ACTION_SEARCH) {
            if (searchType.getText().toString().trim().equals("街道")) {

}
        }

        return false;
    }
});

EditView输入框信息输入监听(获取输入框中信息输入情况)

public static void textChangedListener(final EditText edittext, final ImageView imageview){
    imageview.setVisibility(View.GONE);
    edittext.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        }
        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            imageview.setVisibility(View.VISIBLE);
        }
        @Override
        public void afterTextChanged(Editable s) {
            if (edittext.getText().toString().equals("")){
                imageview.setVisibility(View.GONE);
            }
        }
    });
}

设置输入状态

不可编辑状态:
editText.setFocusable(false);
editText.setFocusableInTouchMode(false);

可编辑状态:
editText.setFocusableInTouchMode(true);
editText.setFocusable(true);
editText.requestFocus();

android 获取手机充电状态(可以自行制作手机充电提示音,权限设置好就可以在后台一直运行)

public static class BatteryListener{
    private Context mContext;

    private BatteryBroadcastReceiver receiver;

    private BatteryStateListener mBatteryStateListener;

    public BatteryListener(Context context) {
        mContext = context;
        receiver = new BatteryBroadcastReceiver();
    }

    public void register(BatteryStateListener listener) {
        mBatteryStateListener = listener;
        if (receiver != null) {
            IntentFilter filter = new IntentFilter();
            filter.addAction(Intent.ACTION_BATTERY_CHANGED);
            filter.addAction(Intent.ACTION_BATTERY_LOW);
            filter.addAction(Intent.ACTION_BATTERY_OKAY);
            filter.addAction(Intent.ACTION_POWER_CONNECTED);
            filter.addAction(Intent.ACTION_POWER_DISCONNECTED);
            mContext.registerReceiver(receiver, filter);
        }
    }

    public void unregister() {
        if (receiver != null) {
            mContext.unregisterReceiver(receiver);
        }
    }

    private class BatteryBroadcastReceiver extends BroadcastReceiver {

        @Override
        public void onReceive(Context context, Intent intent) {
            if (intent != null) {
                String acyion = intent.getAction();
                switch (acyion) {
                    case Intent.ACTION_BATTERY_CHANGED://电量发生改变
                        if (mBatteryStateListener != null) {
                            //  Log.e("zhang", "BatteryBroadcastReceiver --> onReceive--> ACTION_BATTERY_CHANGED");
                            mBatteryStateListener.onStateChanged();
                        }
                        break;
                    case Intent.ACTION_BATTERY_LOW://电量低
                        if (mBatteryStateListener != null) {
                            //  Log.e("zhang", "BatteryBroadcastReceiver --> onReceive--> ACTION_BATTERY_LOW");
                            mBatteryStateListener.onStateLow();
                        }
                        break;
                    case Intent.ACTION_BATTERY_OKAY://电量充满
                        if (mBatteryStateListener != null) {
                            //  Log.e("zhang", "BatteryBroadcastReceiver --> onReceive--> ACTION_BATTERY_OKAY");
                            mBatteryStateListener.onStateOkay();
                        }
                        break;
                    case Intent.ACTION_POWER_CONNECTED://接通电源
                        if (mBatteryStateListener != null) {
                            //  Log.e("zhang", "BatteryBroadcastReceiver --> onReceive--> ACTION_POWER_CONNECTED");
                            mBatteryStateListener.onStatePowerConnected();
                        }
                        break;
                    case Intent.ACTION_POWER_DISCONNECTED://拔出电源
                        if (mBatteryStateListener != null) {
                            //  Log.e("zhang", "BatteryBroadcastReceiver --> onReceive--> ACTION_POWER_DISCONNECTED");
                            mBatteryStateListener.onStatePowerDisconnected();
                        }
                        break;
                }
            }
        }
    }

    public interface BatteryStateListener {
        public void onStateChanged();

        public void onStateLow();

        public void onStateOkay();

        public void onStatePowerConnected();

        public void onStatePowerDisconnected();
    }

}

总结

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值