dialog点击外边关闭 dialog自定义尺寸 sqlite自增长 修改权限列表变量更新数据库
2016-10-13 17:37
274 查看
1.dialog点击外边关闭
2.dialog自定义尺寸
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) {
}
});
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) {
}
});
相关文章推荐
- 自定义Dialog点击弹框外的区域无法关闭问题
- Vue.js实现在下拉列表区域外点击即可关闭下拉列表的功能(自定义下拉列表)
- listview的item中有个checkbox,点击后会修改相应数据库数据,如何在listview中实时显示这个更新?
- 自定义布局Dialog 自定义dialog右上角带叉号的dialog 点击右上角叉号关闭dialog
- ecshop商品列表修改js点击自动更新
- Vue.js自定义下拉列表,如何实现在下拉列表区域外点击即可关闭下拉列表的功能
- Android 自定义Dialog 里面有EditText控件点击关闭输入法失效的问题
- android自定义dialog中点击listview的item事件关闭dialog
- android自定义dialog中点击listview的item事件关闭dialog
- log4net把自定义的变量写入数据库
- android 数据库 SQLiteOpenHelper和ContentProvider学习笔记---添加修改删除数据之联系人(二)
- hibernate中只让数据修改的字段更新数据库
- msyql用户密码修改及关闭/限制MYSQL用户远程访问的权限
- 写一个方法进行各种属性的更新,而不要每个界面设置改变都改变一个属性。就是点击应用或确定按钮时调用这个更新属性的方法,遍历所有(控制对象属性的)界面控件的状态(值),进行属性修改和刷新。
- sqlite 数据库可视化查看修改分析工具sqlitebrowser
- 更新:超轻量级数据库引擎SQLite3.04版和SQLiteDB 1.0.2版
- spring security 3 中使用自定义数据库来设置权限
- Z-Blog自定义时间评论关闭功能的修改
- [SharePoint 2010] 修改列表的“Add new item”为自定义
- 购物网站16-2:权限action-----AOP拦截----自定义注解----权限组分页列表----权限组管理----权限请求处理器