您的位置:首页 > 数据库

dialog点击外边关闭 dialog自定义尺寸 sqlite自增长 修改权限列表变量更新数据库

2016-10-13 17:37 274 查看
1.dialog点击外边关闭

public static Dialog creatDialog(final Context context, String tip){
Dialog dialog = new Dialog(context, R.style.appDialog);
dialog.setContentView(R.layout.common_wdailog);
dialog.setCanceledOnTouchOutside(false);// 设置点击屏幕Dialog不消失


2.dialog自定义尺寸
int width = ScreenUtils.getScreenHeight((Context) mainActInterface);
getDialog().getWindow().setLayout(width * 2 / 3, LinearLayout.LayoutParams.WRAP_CONTENT);

public static int getScreenHeight(Context context)
{
WindowManager wm = (WindowManager) context
.getSystemService(Context.WINDOW_SERVICE);
DisplayMetrics outMetrics = new DisplayMetrics();
wm.getDefaultDisplay().getMetrics(outMetrics);
return outMetrics.heightPixels;
}
3.sqlite自增长 

SQLite中创建自增字段:

简单的回答:一个声明为 INTEGER PRIMARY KEY 的字段将自动增加。
自测有一些smallint 不能自增。

4.变量更新数据库

有时我们会遇到这样的需求:1.表A里是所有的权限列表。2.表B是所有用户对应的权限列表。3.也就是B中如果添加一个功能就要插入条记录,减少一个功能要删除一个记录。

当我们修改一个权限如何变量更新数据库呢?

我是这么做的弄一个List<Function> 如果在A中点亮或者取消一个权限, 就把对应的Bean加入或者删除到List中,在保存时遍历这个list和已有用户的列表,如果有功能id相同,

则证明原来有这个功能那么把这个功能加入删除的列表中,如果以前没有这个id就把功能加入添加的列表中去,最后开启事务执行添加删除操作。

上代码:

Observable.create(new Observable.OnSubscribe<Integer>() {
@Override
public void call(Subscriber<? super Integer> subscriber) {
//查询原等级roleFunc记录 如果有修改过并且原记录有这条则删除 没有就添加

List<RoleFunctionBean> deleteList = new ArrayList<RoleFunctionBean>();
List<RoleFunctionBean> insertList = new ArrayList<RoleFunctionBean>();
List<RoleFunctionBean> roleFunctionBeanList = userDBHelper.getAllRoleFuncations(level);

for(FunctionInfoBean functionInfoBean:getPermissionAdapter().getModifiedFunctionInfoBeans())
{
boolean exgist=false;
for (RoleFunctionBean roleFunctionBean:roleFunctionBeanList)
{
if(roleFunctionBean.getFunId()==functionInfoBean.getFunId())
{
exgist=true;
deleteList.add(roleFunctionBean);
break;
}
}
if(!exgist)
{
//insert
insertList.add(new RoleFunctionBean(level, functionInfoBean.getFunId(), true));
}
}
Log.i(TAG, "call: deleteList size"+deleteList.size()+" insertList size"+insertList.size());
userDBHelper.insertRoleFunctionsWithoutID(insertList);
userDBHelper.deleteRoleFunctions(deleteList);
subscriber.onCompleted();
}
}).subscribeOn(Schedulers.io()).doOnSubscribe(new Action0() {
@Override
public void call() {
pDialog.show();
pDialog.setCancelable(false);
}
}).subscribeOn(AndroidSchedulers.mainThread()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Subscriber<Integer>() {
@Override
public void onCompleted() {
Log.i(TAG, "onCompleted: Modify done");
pDialog.dismiss();
permissionAdapter.getModifiedFunctionInfoBeans().clear();
Toast.makeText(getView().getMContext(), "保存成功!", Toast.LENGTH_SHORT).show();
}

@Override
public void onError(Throwable e) {

}

@Override
public void onNext(Integer integer) {

}
});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐