设置 Textview 划线(显示价格可能用到)
textview.getPaint().setFlags(Paint. STRIKE_THRU_TEXT_FLAG ); //中间横线
textview.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);//下划线
textview.getPaint().setAntiAlias(true);// 抗锯齿
RecycleView 数据刷新(增删数据)
public void notifyData(List<AddressBean> poiItemList) {
if (poiItemList != null) {
//获得原始数据个数
int previousSize = addressBeans.size();
//清空原始数据
addressBeans.clear();
//移除这段数据
notifyItemRangeRemoved(0, previousSize);
//将改变的数据添加
addressBeans.addAll(poiItemList);
//刷新这些数据
notifyItemRangeInserted(0, poiItemList.size());
}
}
跳转联系人获得联系人信息(6.0权限要注意)
//1 添加权限
<uses-permission android:name="android.permission.READ_CONTACTS" />
//2 跳转界面
Intent intent = new Intent();
intent.setAction(Intent.ACTION_PICK);
intent.setData(Uri.parse("content://contacts"));
intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE);
startActivityForResult(intent, 0);
//3 获得数据
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case 0:
if (resultCode == Activity.RESULT_OK) {
// 获得姓名和手机号
ArrayList<String> strings = contactsNoRepeatListResult(AddressAddActivity.this, data);
}
break;
}
}
//4 得到数据的方法
public static ArrayList<String> contactsNoRepeatListResult(Context context, Intent data) {
ArrayList<String> result = new ArrayList<>();
if (data == null) {
return null;
}
Uri uri = data.getData();
if (null != uri) {
Cursor cursor = context
.getContentResolver()
.query(uri,
new String[]{ContactsContract.Contacts.DISPLAY_NAME, ContactsContract.CommonDataKinds.Phone.NUMBER},
null, null, null);
if (cursor != null) {
cursor.moveToFirst();
if (cursor.getCount() > 0) {
do {
result.add(cursor.getString(0));//name
result.add(cursor.getString(1));//number
} while (cursor.moveToNext());
}
cursor.close();
} else {
return null;
}
}
return result;
}
跳转设置里面的应用状态栏通知设置
//1 获得状态栏的通知是否被用户禁用
NotificationManagerCompat manager = NotificationManagerCompat.from(this);
// areNotificationsEnabled方法的有效性官方只最低支持到API 19,低于19的仍可调用此方法不过只会返回true,即默认为用户已经开启了通知。
boolean isOpened = manager.areNotificationsEnabled();
//2 根据判断去跳转手机系统设置里的应用通知
try {
// 根据isOpened结果,判断是否需要提醒用户跳转AppInfo页面,去打开App通知权限
Intent intent = new Intent();
intent.setAction(Settings.ACTION_APP_NOTIFICATION_SETTINGS);
//这种方案适用于 API 26, 即8.0(含8.0)以上可以用
intent.putExtra(Settings.EXTRA_APP_PACKAGE, getPackageName());
intent.putExtra(Settings.EXTRA_CHANNEL_ID, getApplicationInfo().uid);
//这种方案适用于 API21——25,即 5.0——7.1 之间的版本可以使用
intent.putExtra("app_package", getPackageName());
intent.putExtra("app_uid", getApplicationInfo().uid);
startActivity(intent);
} catch (Exception e) {
e.printStackTrace();
// 出现异常则跳转到应用设置界面:
Intent intent = new Intent();
//下面这种方案是直接跳转到当前应用的设置界面。
intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
Uri uri = Uri.fromParts("package", getPackageName(), null);
intent.setData(uri);
startActivity(intent);
}