前言
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();
}
}