- Android Studio:EditText常见4种监听方式
剑客狼心
androidstudioEditText监听EditorAction
1.文本变化监听(TextWatcher)TextWatcher主要用于监听EditText里的文本变化,它有三个方法:beforeTextChanged(文本变化前)onTextChanged(文本正在变化时)afterTextChanged(文本变化后)我们分别看看它们的触发时机和适用场景。(1)beforeTextChanged(文本变化前触发)触发时机:当EditText里的内容即将改变,
- 关于Activity的六个常用控件和ListView控件的详情
众智创新团队
javascript开发语言ecmascript
一.Activity基础控件的知识1.1TextView1.2Button1.3EditText1.4ImageView1.5ProgressBar1.6AlterDialog二.特殊的ListView控件2.1ListView知识前言:Android给我们提供了大量的UI控件,合理地使用这些控件就可以非常轻松地编写出相当不错的界面,下面我们就挑选几种常用的控件,详细介绍一下它们的使用方法。一.六
- Android Studio系列讲解之UI开发的布局
彬sir哥
Androidkotlin入门到进阶系列讲解androidstudiokotlinUI布局
<<返回总目录文章目录一、常用控件的使用方法1、TextView2、Button3、EditText4、ImageView二、详细2种基本布局1、LinearLayout2、RelativeLayout三、系统控件不够用?创建自定义控件1、引入布局2、创建自定义控件一、常用控件的使用方法Android给我们提供了大量的UI控件,合理地使用这些控件就可以非常轻松地编写出相当不错的界面首先新建一个UI
- 解决:自定义的dialog 布局中edittext无法获取焦点并且软键盘无法弹出
王智于
dialog中的软键盘无法弹出android
Windowwindow=dialog.getWindow();window.setContentView(R.layout.dialog_postmsg);LayoutParamsparams=window.getAttributes();params.width=LayoutParams.MATCH_PARENT;//如果不设置,可能部分机型出现左右有空隙,也就是产生margin的感觉para
- Android 安卓DataBinding(七)·事件绑定
2401_84148974
程序员androidgitee
android:afterTextChanged和android:onTextChanged可以用于EditText中整体思路以输入账号密码来进行模拟,模拟使用android:onClick、android:afterTextChanged和android:onTextChanged。跟我一起来做!修改Bean类:username和password分别表示账号和密,用final来修饰,如果你不知道
- EditText的TextWatcher监听事件延迟处理
han_gao
EditTextTextWatcher
在工作中会碰到使用EditText作为搜索框的时监听TextWatsher事件能让我们实时拿到EditText中的内容,但是TextWatsher给我们的三个接口@OverridepublicvoidbeforeTextChanged(CharSequences,intstart,intcount,intafter){}@OverridepublicvoidonTextChanged(CharSe
- EditText 数据更新事件
科学的发展-只不过是读大自然写的代码
androidandroid
在Android开发中,EditText是用于输入文本的基本组件。如果你想要监听EditText中数据的变化(即文本更新事件),你可以使用TextWatcher。TextWatcher是一个接口,它有三个方法:beforeTextChanged(CharSequences,intstart,intcount,intafter):在文本变化之前调用。onTextChanged(CharSequenc
- 软键盘显示/交互问题
大渔歌_
Androidandroid
日常开发会经常遇到软键盘覆盖界面布局的问题,比如:我有一个fragment,中心布局了EditText,正常情况是,当点击这个EditText的时候,输入法会弹出来,但是输入控件会覆盖掉EditText,看不到输入的内容,这种应该怎么处理呢这个问题通常是因为当软键盘弹出时,EditText被遮挡导致无法看到输入的内容。解决这个问题的方法有几种,常见的方式是调整布局的行为,让输入法弹出时,布局可以自
- Android Studio 备忘录(简单)实现
松醪
javasqliteandroidgithub编辑器
项目简介AndroidStudio环境下,备忘录(简单)的实现,功能有:添加,单个查询,删除全部内容,并可获取当前时间存储在SqlLite中。所用到的显示控件为ScrollView,EditText,TextView,ImageButton.图片展示首页添加页添加后的页面Acticity_main.xml代码展示Acativity_add.xml(添加)代码展示MainActivity.java代
- AndroidStudio简单计算器的实现
松醪
javaandroidstudio
项目简介首先此项目是本人学校安卓开发的一次作业,用AndroidStudio开发一个简单的计算器,这个计算器正常的功能为带括号的加减乘除多项式计算!界面展示废话不多说先展示一下界面!(模仿了小米计算器),有两种方式添加控件,一种为动态添加,一种为直接添加。这里使用了EditText(1),TextView(1),Button(19)”activity_main.xml“展示部分AndroidStu
- 在隐藏系统软键盘时,光标也消失了的处理方法
mapleSeriesX
最开始直接就是用的setInputType(InputType.TYPE_NULL)方法但是发现系统键盘是隐藏了但是光标也不在了,通过查询发现在4.0以后需要使用另外一个方法才能显示光标但是这个方法并没有暴露给我们,需要用到反射机制。//隐藏系统键盘publicvoidhideSoftInputMethod(EditTexted){getWindow().setSoftInputMode(Wind
- Android-完美解决EditText和ScrollView的滚动冲突 转载
xiaoerbuyu1233
android
https://blog.51cto.com/u_15073486/3650167publicclassMainActivityextendsActivityimplementsView.OnTouchListener{privateEditTextmEditText;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.on
- Android EditText关于imeOptions的设置和响应
左大星
Android进阶androidandroidjetpackandroid-jetpack
日常开发中,最绕不开的一个控件就是EditText,随之避免不了的则是对其软键盘事件的监听,随着需求的不同对用户输入的软键盘要求也不同,有的场景需要用户输入完毕后,有一个确认按钮,有的场景需要的是回车,有的场景需要用户输入后进入下一项或者搜索,所幸的是,大部分需求场景通过修改原生设置就可满足,只要极少情况下才需要去写自定义键盘。而关于EditText唤起的软键盘中回车的功能可以通过imeOptio
- 判断输入的是否是英文,数字,汉字
Summer_27d1
···publicvoidonClick(Viewview){switch(view.getId()){caseR.id.bt_1://搜索Viewinflate=View.inflate(this,R.layout.sousuo_layout,null);finalEditTextmViewById=inflate.findViewById(R.id.sousuo1);newAlertDialo
- EditText(输入框)详解
微语博客
简介EditText是Android的输入控件,负责与用户交互数据。EditText与TextView基本类似,TextView的属性也大都适用于EditText,这里讲解一些EditText的常见属性。如果想了解TextView的使用,可以阅读我的上一篇文章,TextView详解,另外这里贴一下EditText的官方文档EditText官方文档基础属性id:设置控件的id用于java代码中找到该
- EditText
船长_e30d
EditText默认会自动获取焦点,有的时候已进入界面,就会弹出软键盘,所以我们可以给EditText套个父层集,然后让父层去获取焦点.这样就避免了editText自动获取焦点的问题
- 【Android】TextView详解和常用属性
Full guts
Androidandroidxmlandroidstudiojava
目录一、TextView简介二、常用属性一、TextView简介在Android开发中,TextView是比较常用的控件,展示文本信息,其属性也是比较繁多的,可设置文字的字体大小、颜色、背景色、边距等基本样式。TextView的继承关系:TextView作为一个大类,其继承了View,更是Button、EditText等多个关键控件类的父类。Button:用户可以点击或单击以执行操作的用户界面元素
- 【Android入门到项目实战--3.1】—— 七种常用控件的使用(TextView、Button、EditText、ImageView、ProgressBar、AlertDialog等)
四月天行健
Androidandroidandroidstudioidejava
目录一、常用的控件1、TextView2、Button3、EditText4、ImageView5、ProgressBar1)如何让加载条在加载完成时消失?2)如何修改进度条样式?6、AlertDialog7、ProgressDialog本篇主要讲解Android的常用控件。一、常用的控件1、TextViewTextView控件用于在界面上显示一段文本信息。下面尝试实现。XML布局文件代码如下:a
- Android EditText 数字键盘 输入负数 小数点的 操作
buhanzhe
代码如下:mContentInputView.setInputType(InputType.TYPE_CLASS_NUMBER|InputType.TYPE_NUMBER_FLAG_DECIMAL|InputType.TYPE_NUMBER_FLAG_SIGNED);TYPE_CLASS_NUMBER标准数字TYPE_NUMBER_FLAG_DECIMAL带小数点TYPE_NUMBER_FLAG_
- 写一个APP实现nrf master功能(展示一下功能)
昨天剩下的一杯冷茶
扫描Activity,当点击某个蓝牙设备时,会调到第二个界面image.png跳转到第二个Activity,点击CONNECT按键image.png可以看到手环显示蓝牙图标image.png在EditText输入震动命令1700020202(手环的协议),看到手环震动,且手环应答命令为0x9617image.png
- Android EditText动态改变颜色
songsyl1207
直接上代码importandroid.content.Contextimportandroid.content.res.ColorStateListimportandroid.graphics.drawable.Drawableimportandroid.os.Buildimportandroid.util.AttributeSetimportandroid.widget.EditTextimpo
- 学习Android的第七天
世俗ˊ
Android学习android
目录AndroidEditText输入框设置默认提示文本范例获得焦点后全选组件内所有文本内容范例限制EditText输入类型android:inputType值列表范例设置最小行,最多行,单行,多行,自动换行范例设置文字间隔范例设置英文字母大写类型范例控制EditText四周的间隔距离与内部文字与边框间的距离范例EditText光标位置的控制设置EditText获得焦点同时弹出小键盘范例带表情的E
- 今日成果
小菊花麻麻颗糖
本来想如果不填字的话,实用AlertDialog弹出一个提示框,然后填字的话就弹出这个搜索框,但是没有实现很遗憾。图片发自App简单的布局EditText和Button在水平方向上平分宽度图片发自App更换app图标图片发自App
- 安卓——计算器应用(Java)
九考
AI生成代码androidjava
步骤1:设置AndroidStudio项目创建一个新的Android项目,选择Java作为编程语言。步骤2:设计用户界面打开activity_main.xml文件,在res/layout目录下,设计你的计算器用户界面。这个例子使用了LinearLayout来排列两个EditText输入框和几个按钮。步骤3:实现计算逻辑在MainActivity.java文件中,添加逻辑来处理用户的输入和计算请求。
- 短信验证码控件简单实现
不落孤城
第一次在上码文章,主要是记录下以后可能会用到的代码,自用顺便提供给可能需要的同学。一、需求背景产品经理突然要求更改短信验证码的样式,觉得验证码输入太过于简单,已经落后市场上其他竞品了,效果图如下:6位验证码输入满6位,自动调用接口去验证输入是否正确。验证错误后,验证码变红并提醒用户。允许用户进行删除。二、简单思路及实现方案本来是准备使用6个Edittext进行操作,后来研究发现焦点的传递和删除时,
- Android View篇之自定义验证码输入框
Android高级工程师
首先,我们来看看实现的是怎么样的效果:image.png如果我们拿到这样的UI,想到的布局应该是用4个EditText包在横向的LinearLayout里面,但今天要讲的View,所以我们决定用一个自定义的EditText画出来。学到什么?基本理解画布概念画布的状态、平移布局测量画图片功能需求高亮当前输入框输入满4个数字自动调用方法思路完全重画一个EditText,就包含了测量布局和重新绘制这两个
- 如何将dialog中的button动态设置为disable
超__越
构造一个自定义的dialog,其中包括一个编辑栏(EditText)和两个按钮(确定和取消)如果想要当EditText为空的时候让确定按钮为不可点击状态privatevoidcreateCustomDialog(ContextdialogContext,finalintposition,StringdefaultNumber){finalEditTexteditText=newEditText(d
- Android edittext限制输入金额
xiaoerbuyu1233
android
Android实现EditText输入金额-腾讯云开发者社区-腾讯云publicstaticvoidsetMoney(EditTexteditText){if(editText==null)return;//设置只能输入金额的InputFiltereditText.setFilters(newInputFilter[]{newInputFilter(){finalPatternmPattern=P
- android edittext格式验证,Android:如何验证EditText输入?
980971
androidedittext格式验证
Android:如何验证EditText输入?我需要在一系列EditTexts上进行表单输入验证。我使用OnFocusChangeListeners在用户输入每个之后触发验证,但这不符合上一个EditText的需要。如果在键入最终的EditText时单击“完成”按钮,则InputMethod将断开连接,但技术上焦点永远不会丢失在EditText上(因此永远不会发生验证)。什么是最好的解决方案?当I
- android+禁止输入表情,Android禁止输入表情符号的EditText
weixin_39520204
android+禁止输入表情
最近刚做完项目,出了个测试包就开开心心的把项目发给老板测试了老板刚装上就给我批评了一顿,说刚用上就发现一个重大bug,还想不想要工资了我当时心里就想:“sb,不会用吧”。。。。。言归正传,现在很多输入法都自带了表情,输入的时候很方便,但是对我们程序员来说就不那么方便了,因为直接输入表情后台不做处理的话会报错的。虽然跟我们前端没有半毛钱关系,但是这毕竟也是一个bug,该处理处理下。在网上看了些资料发
- Hadoop(一)
朱辉辉33
hadooplinux
今天在诺基亚第一天开始培训大数据,因为之前没接触过Linux,所以这次一起学了,任务量还是蛮大的。
首先下载安装了Xshell软件,然后公司给了账号密码连接上了河南郑州那边的服务器,接下来开始按照给的资料学习,全英文的,头也不讲解,说锻炼我们的学习能力,然后就开始跌跌撞撞的自学。这里写部分已经运行成功的代码吧.
在hdfs下,运行hadoop fs -mkdir /u
- maven An error occurred while filtering resources
blackproof
maven报错
转:http://stackoverflow.com/questions/18145774/eclipse-an-error-occurred-while-filtering-resources
maven报错:
maven An error occurred while filtering resources
Maven -> Update Proje
- jdk常用故障排查命令
daysinsun
jvm
linux下常见定位命令:
1、jps 输出Java进程
-q 只输出进程ID的名称,省略主类的名称;
-m 输出进程启动时传递给main函数的参数;
&nb
- java 位移运算与乘法运算
周凡杨
java位移运算乘法
对于 JAVA 编程中,适当的采用位移运算,会减少代码的运行时间,提高项目的运行效率。这个可以从一道面试题说起:
问题:
用最有效率的方法算出2 乘以8 等於几?”
答案:2 << 3
由此就引发了我的思考,为什么位移运算会比乘法运算更快呢?其实简单的想想,计算机的内存是用由 0 和 1 组成的二
- java中的枚举(enmu)
g21121
java
从jdk1.5开始,java增加了enum(枚举)这个类型,但是大家在平时运用中还是比较少用到枚举的,而且很多人和我一样对枚举一知半解,下面就跟大家一起学习下enmu枚举。先看一个最简单的枚举类型,一个返回类型的枚举:
public enum ResultType {
/**
* 成功
*/
SUCCESS,
/**
* 失败
*/
FAIL,
- MQ初级学习
510888780
activemq
1.下载ActiveMQ
去官方网站下载:http://activemq.apache.org/
2.运行ActiveMQ
解压缩apache-activemq-5.9.0-bin.zip到C盘,然后双击apache-activemq-5.9.0-\bin\activemq-admin.bat运行ActiveMQ程序。
启动ActiveMQ以后,登陆:http://localhos
- Spring_Transactional_Propagation
布衣凌宇
springtransactional
//事务传播属性
@Transactional(propagation=Propagation.REQUIRED)//如果有事务,那么加入事务,没有的话新创建一个
@Transactional(propagation=Propagation.NOT_SUPPORTED)//这个方法不开启事务
@Transactional(propagation=Propagation.REQUIREDS_N
- 我的spring学习笔记12-idref与ref的区别
aijuans
spring
idref用来将容器内其他bean的id传给<constructor-arg>/<property>元素,同时提供错误验证功能。例如:
<bean id ="theTargetBean" class="..." />
<bean id ="theClientBean" class=&quo
- Jqplot之折线图
antlove
jsjqueryWebtimeseriesjqplot
timeseriesChart.html
<script type="text/javascript" src="jslib/jquery.min.js"></script>
<script type="text/javascript" src="jslib/excanvas.min.js&
- JDBC中事务处理应用
百合不是茶
javaJDBC编程事务控制语句
解释事务的概念; 事务控制是sql语句中的核心之一;事务控制的作用就是保证数据的正常执行与异常之后可以恢复
事务常用命令:
Commit提交
- [转]ConcurrentHashMap Collections.synchronizedMap和Hashtable讨论
bijian1013
java多线程线程安全HashMap
在Java类库中出现的第一个关联的集合类是Hashtable,它是JDK1.0的一部分。 Hashtable提供了一种易于使用的、线程安全的、关联的map功能,这当然也是方便的。然而,线程安全性是凭代价换来的――Hashtable的所有方法都是同步的。此时,无竞争的同步会导致可观的性能代价。Hashtable的后继者HashMap是作为JDK1.2中的集合框架的一部分出现的,它通过提供一个不同步的
- ng-if与ng-show、ng-hide指令的区别和注意事项
bijian1013
JavaScriptAngularJS
angularJS中的ng-show、ng-hide、ng-if指令都可以用来控制dom元素的显示或隐藏。ng-show和ng-hide根据所给表达式的值来显示或隐藏HTML元素。当赋值给ng-show指令的值为false时元素会被隐藏,值为true时元素会显示。ng-hide功能类似,使用方式相反。元素的显示或
- 【持久化框架MyBatis3七】MyBatis3定义typeHandler
bit1129
TypeHandler
什么是typeHandler?
typeHandler用于将某个类型的数据映射到表的某一列上,以完成MyBatis列跟某个属性的映射
内置typeHandler
MyBatis内置了很多typeHandler,这写typeHandler通过org.apache.ibatis.type.TypeHandlerRegistry进行注册,比如对于日期型数据的typeHandler,
- 上传下载文件rz,sz命令
bitcarter
linux命令rz
刚开始使用rz上传和sz下载命令:
因为我们是通过secureCRT终端工具进行使用的所以会有上传下载这样的需求:
我遇到的问题:
sz下载A文件10M左右,没有问题
但是将这个文件A再传到另一天服务器上时就出现传不上去,甚至出现乱码,死掉现象,具体问题
解决方法:
上传命令改为;rz -ybe
下载命令改为:sz -be filename
如果还是有问题:
那就是文
- 通过ngx-lua来统计nginx上的虚拟主机性能数据
ronin47
ngx-lua 统计 解禁ip
介绍
以前我们为nginx做统计,都是通过对日志的分析来完成.比较麻烦,现在基于ngx_lua插件,开发了实时统计站点状态的脚本,解放生产力.项目主页: https://github.com/skyeydemon/ngx-lua-stats 功能
支持分不同虚拟主机统计, 同一个虚拟主机下可以分不同的location统计.
可以统计与query-times request-time
- java-68-把数组排成最小的数。一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的。例如输入数组{32, 321},则输出32132
bylijinnan
java
import java.util.Arrays;
import java.util.Comparator;
public class MinNumFromIntArray {
/**
* Q68输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个。
* 例如输入数组{32, 321},则输出这两个能排成的最小数字32132。请给出解决问题
- Oracle基本操作
ccii
Oracle SQL总结Oracle SQL语法Oracle基本操作Oracle SQL
一、表操作
1. 常用数据类型
NUMBER(p,s):可变长度的数字。p表示整数加小数的最大位数,s为最大小数位数。支持最大精度为38位
NVARCHAR2(size):变长字符串,最大长度为4000字节(以字符数为单位)
VARCHAR2(size):变长字符串,最大长度为4000字节(以字节数为单位)
CHAR(size):定长字符串,最大长度为2000字节,最小为1字节,默认
- [强人工智能]实现强人工智能的路线图
comsci
人工智能
1:创建一个用于记录拓扑网络连接的矩阵数据表
2:自动构造或者人工复制一个包含10万个连接(1000*1000)的流程图
3:将这个流程图导入到矩阵数据表中
4:在矩阵的每个有意义的节点中嵌入一段简单的
- 给Tomcat,Apache配置gzip压缩(HTTP压缩)功能
cwqcwqmax9
apache
背景:
HTTP 压缩可以大大提高浏览网站的速度,它的原理是,在客户端请求网页后,从服务器端将网页文件压缩,再下载到客户端,由客户端的浏览器负责解压缩并浏览。相对于普通的浏览过程HTML ,CSS,Javascript , Text ,它可以节省40%左右的流量。更为重要的是,它可以对动态生成的,包括CGI、PHP , JSP , ASP , Servlet,SHTML等输出的网页也能进行压缩,
- SpringMVC and Struts2
dashuaifu
struts2springMVC
SpringMVC VS Struts2
1:
spring3开发效率高于struts
2:
spring3 mvc可以认为已经100%零配置
3:
struts2是类级别的拦截, 一个类对应一个request上下文,
springmvc是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应
所以说从架构本身上 spring3 mvc就容易实现r
- windows常用命令行命令
dcj3sjt126com
windowscmdcommand
在windows系统中,点击开始-运行,可以直接输入命令行,快速打开一些原本需要多次点击图标才能打开的界面,如常用的输入cmd打开dos命令行,输入taskmgr打开任务管理器。此处列出了网上搜集到的一些常用命令。winver 检查windows版本 wmimgmt.msc 打开windows管理体系结构(wmi) wupdmgr windows更新程序 wscrip
- 再看知名应用背后的第三方开源项目
dcj3sjt126com
ios
知名应用程序的设计和技术一直都是开发者需要学习的,同样这些应用所使用的开源框架也是不可忽视的一部分。此前《
iOS第三方开源库的吐槽和备忘》中作者ibireme列举了国内多款知名应用所使用的开源框架,并对其中一些框架进行了分析,同样国外开发者
@iOSCowboy也在博客中给我们列出了国外多款知名应用使用的开源框架。另外txx's blog中详细介绍了
Facebook Paper使用的第三
- Objective-c单例模式的正确写法
jsntghf
单例iosiPhone
一般情况下,可能我们写的单例模式是这样的:
#import <Foundation/Foundation.h>
@interface Downloader : NSObject
+ (instancetype)sharedDownloader;
@end
#import "Downloader.h"
@implementation
- jquery easyui datagrid 加载成功,选中某一行
hae
jqueryeasyuidatagrid数据加载
1.首先你需要设置datagrid的onLoadSuccess
$(
'#dg'
).datagrid({onLoadSuccess :
function
(data){
$(
'#dg'
).datagrid(
'selectRow'
,3);
}});
2.onL
- jQuery用户数字打分评价效果
ini
JavaScripthtmljqueryWebcss
效果体验:http://hovertree.com/texiao/jquery/5.htmHTML文件代码:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>jQuery用户数字打分评分代码 - HoverTree</
- mybatis的paramType
kerryg
DAOsql
MyBatis传多个参数:
1、采用#{0},#{1}获得参数:
Dao层函数方法:
public User selectUser(String name,String area);
对应的Mapper.xml
<select id="selectUser" result
- centos 7安装mysql5.5
MrLee23
centos
首先centos7 已经不支持mysql,因为收费了你懂得,所以内部集成了mariadb,而安装mysql的话会和mariadb的文件冲突,所以需要先卸载掉mariadb,以下为卸载mariadb,安装mysql的步骤。
#列出所有被安装的rpm package rpm -qa | grep mariadb
#卸载
rpm -e mariadb-libs-5.
- 利用thrift来实现消息群发
qifeifei
thrift
Thrift项目一般用来做内部项目接偶用的,还有能跨不同语言的功能,非常方便,一般前端系统和后台server线上都是3个节点,然后前端通过获取client来访问后台server,那么如果是多太server,就是有一个负载均衡的方法,然后最后访问其中一个节点。那么换个思路,能不能发送给所有节点的server呢,如果能就
- 实现一个sizeof获取Java对象大小
teasp
javaHotSpot内存对象大小sizeof
由于Java的设计者不想让程序员管理和了解内存的使用,我们想要知道一个对象在内存中的大小变得比较困难了。本文提供了可以获取对象的大小的方法,但是由于各个虚拟机在内存使用上可能存在不同,因此该方法不能在各虚拟机上都适用,而是仅在hotspot 32位虚拟机上,或者其它内存管理方式与hotspot 32位虚拟机相同的虚拟机上 适用。
- SVN错误及处理
xiangqian0505
SVN提交文件时服务器强行关闭
在SVN服务控制台打开资源库“SVN无法读取current” ---摘自网络 写道 SVN无法读取current修复方法 Can't read file : End of file found
文件:repository/db/txn_current、repository/db/current
其中current记录当前最新版本号,txn_current记录版本库中版本