开发实用代码

设置 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 poiItemList) {
        if (poiItemList != null) {
			//获得原始数据个数
            int previousSize = addressBeans.size();
			//清空原始数据
            addressBeans.clear();
			//移除这段数据
            notifyItemRangeRemoved(0, previousSize);
			//将改变的数据添加
            addressBeans.addAll(poiItemList);
			//刷新这些数据
            notifyItemRangeInserted(0, poiItemList.size());
        }
    }

 

跳转联系人获得联系人信息(6.0权限要注意)

//1  添加权限

//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 strings = contactsNoRepeatListResult(AddressAddActivity.this, data);
                   
                }

                break;
        }
    }


//4  得到数据的方法
    public static ArrayList contactsNoRepeatListResult(Context context, Intent data) {
        ArrayList 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);
 }

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(开发实用代码)