手机返回键监听
-
如果在此办法中不调用 super.onBackPressed() 办法,则不会执行页面的返回操作。
@Override public void onBackPressed() {Toast.makeText(getApplicationContext(), "onBackPressed", Toast.LENGTH_SHORT).show(); super.onBackPressed();}
参考文章
ListView 中应用 CheckBox 抉择状态凌乱问题解决办法
- 在数据 bean 中增加一个抉择状态的属性,在点击勾选框的监听中设置对应值
-
而后在前面设置每个 item 的多选框抉择状态即可。
onCheckedChangeListener{if (isChecked) {bean.setCheckedType(1); } else {bean.setCheckedType(0); } } holder.deleteCheckbox.setChecked(bean.getCheckedType() == 1) ;
应用注解定义接口返回的名称
@SerializedName("tname") // 这是接口返回的字段名称
private String name; // 这是本人定义的名称
应用 Gson 解析 List 类型的 json 格局数据
List<Bean> list = new Gson().fromJson(jsonStr, new TypeToken< List<Bean>>(){}.getType());
TextView 粗体
android:textStyle= "bold"
关掉所要到的界面两头的 activity
intent.setFlags(Intent .FLAG_ACTIVITY_CLEAR_TOP);
LinearLayout 点击变换背景色彩
android:clickable="true"
<item
android:drawable="@drawable/register_btn_pressed"
android:state_focused="true"/>
<item
android:drawable="@drawable/register_btn_pressed"
android:state_pressed="true"/>
<item android:drawable="@drawable/register_btn_normal"/>
ListView 嵌套 ListView,itemClick 生效
设置父 ListView 的最外层布局中退出
android:descendantFocusability= "blocksDescendants"
勾销子 ListView 控件的焦点
listview.setFocusable(false) ;
listview.setClickable(false) ;
设置透明度
android:alpha="0.5"
去除 Button 边框暗影
style="?android:attr/borderlessButtonStyle"
三星机型调用零碎相机后,会呈现主动旋转照片的问题,具体解决办法
https://github.com/LengM/MyApplication/blob/master/app/src/main/java/com/yng/ming/myapplication/util/img/PictureUtil.java
对于开关按钮,不倡议设置禁止双击,可能会呈现理论状态和按钮状态不符问题
singleLine 过期代替
EditText:
android:inputType= "text"
android:lines= "1"
button 默认英文大写
button 将默认英文大写除去
android:textAllCaps= "false"
解决 ListView 的 item 点击生效问题
在 Item 布局的根布局加上
Android:descendantFocusability=”blocksDescendants”
解决 ScrollView 嵌套 ListView 运行后最先显示进去的地位不在顶部而是两头问题
listView.setFocusable(false) ;
状态栏设置
// 通明状态栏
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {Window window = getWindow();
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS
| WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
// 设置状态栏的色彩
window.setStatusBarColor(Color.BLACK);
window.setNavigationBarColor(Color.BLACK);
}
TextView 文字色彩无奈设置
getContext().getResources().getColor(textColor)
include 引入 toolbar 不显示,或呈现空指针状况
起因是 view 值为 null,从新给一下值即可
if (null == view) {view = getView();
}
设置小键盘回车按钮
android:imeActionLabel= "搜寻"
android:imeOptions="actionSearch"
搭配
et_address.setImeOptions(EditorInfo.IME_ACTION_SEARCH);
et_address.setOnEditorActionListener(new TextView.OnEditorActionListener(){});
Android 去除 EditView 主动焦点获取
将 EditText 的父级控设置成
android:focusable= "true"
android:focusableInTouchMode= "true"
ImageView 图片显示不全可将属性调整如下
android:scaleType= "centerCrop"
避免 dialog 窗体泄露 (WindowLeaked)
@Override
public void onAfter() {super.onAfter();
if (dialog != null && dialog.isShowing()) {dialog.dismiss();
}
}
设置适配屏幕 (当本人的标题栏被顶部状态栏笼罩时应用)
android:fitsSystemWindows= "true"
PullToRefreshListView 的 layout\_width、layout\_height 属性必须是 match_parent,否则数据将无奈显示
PullToRefreshListView 刷新:
onRefreshComplete() ;
暗藏软键盘
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE) ;
imm.hideSoftInputFromWindow(editText.getWindowToken(), 0) ;
DatePicker 日期控件设置不可输出
android:descendantFocusability= "blocksDescendants"
设置按钮不可点击
btn_start.setEnabled(false) ;
包名与签名
包名不统一:零碎会认为是个新的软件,这就不算降级了
签名不统一:零碎会提醒先卸载之前装置的版本,能力持续装置新的
小提示框
Toast .makeText(context,"", Toast .LENGTH_SHORT) .show();
启动 service
startService(new Intent( DriverActivity.this, LocationService.class)) ;
应用 startService 启动的 service 会无限期运行上来,只有在内部调用 Context 的 stopService 或 Service 外部调用 Service 的 stopSelf 办法时,该 Service 才会进行运行并销毁
若从图库抉择照片谬误,门路不对
Intent intent1 = new Intent(
Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
暗藏 EditText 中的下划线
android: background= "@null"
图片裁剪 (在解决相机或相册返回时能够调用)
public void startCut(Uri path) {Intent intent = new Intent( "com.android.camera.action.CROP");
intent.setDataAndType(path, "image/*");
intent.putExtra("crop", "true");
// aspectX aspectY 是宽高的比例
intent.putExtra("aspectX", 4);
intent.putExtra("aspectY", 4);
// outputX outputY 是裁剪图片宽高
intent.putExtra("outputX", 300);
intent.putExtra("outputY", 300);
// 裁剪实现的图片有可能会呈现黑边,增加以下两个参数即可
intent.putExtra("scale", true); // 黑边
intent.putExtra("scaleUpIfNeeded", true); // 黑边
intent.putExtra("return-data", true);
startActivityForResult(intent, PHOTO_CUT_CODE);
}
设置 TextView 显示一行超过局部以.. 显示
android:ellipsize= "marquee"
android:maxEms= "10"
android:lines= "1"
设置生效时,起因是超过的首要校验条件是 TextView 布局的宽度,如果是 match_parent 并且很宽的话,该成果会“生效”
设置文本 2 行显示,多出局部省略号
tv_content .setMaxLines(2);
tv_content .setEllipsize(TextUtils .TruncateAt .END);
刷新 ListView
adapter.notifyDataSetChanged() ;
ScrollView 去除边缘暗影(边缘款式,高低边缘暗影)
android:overScrollMode="never"
EditText 增加此属性后,输出时,底部的布局会悬浮在软键盘上方
android:scrollbars="vertical"
输入框的数据因为复用导致数据显示凌乱:在 adapter 外面的 onBindViewHolder 函数中应用
// 强行敞开复用
holder.setIsRecyclable(false);