发表于: 2018-08-10 23:56:39
4 833
一、今天完成的事情
1.为注册界面上的Button设置了点击事件
当界面上需要设置点击事件的Button比较多时,如果使用匿名类的方式来注册监听器,代码看起来会比较乱,所以我更喜欢使用实现接口的方式来进行注册,这样所有的点击事件都一目了然。
public class RegisterActivity extends BaseActivity implements View.OnClickListener {
......
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
closeButton = (Button) findViewById(R.id.button_close);
closeButton.setOnClickListener(this);
loginButton = (Button) findViewById(R.id.button_login);
loginButton.setOnClickListener(this);
verificationButton = (Button) findViewById(R.id.button_verification);
verificationButton.setOnClickListener(this);
registerButton = (Button) findViewById(R.id.button_register);
registerButton.setOnClickListener(this);
phoneNumberET = (EditText) findViewById(R.id.et_phone_number);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button_close:
ActivityCollector.finishAll();
break;
case R.id.button_login:
Intent intent = new Intent(RegisterActivity.this, LoginActivity.class);
startActivity(intent);
break;
case R.id.button_verification:
//设置总时间为60秒,每隔1秒更新一次,对象为verificationButton
final MyCountDownTimer myCountDownTimer = new MyCountDownTimer((60 * 1000), 1000, verificationButton);
myCountDownTimer.start();
break;
case R.id.button_register:
String phoneNumber = phoneNumberET.getText().toString();
Boolean b = PhoneNumber.verifyPhoneNumber(phoneNumber);
if (b) {
Toast.makeText(RegisterActivity.this, "注册成功", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(RegisterActivity.this, "号码有误", Toast.LENGTH_SHORT).show();
}
break;
default:
break;
}
}
}
2.完成了验证码倒计时功能
参考资料:Android获取验证码倒计时实现
3.完成了手机号码格式验证功能
关于三大运营商的号段,参考最新手机号段归属地数据库
/*
用于验证手机号码格式是否正确
三大运营商最新号段(2018.08.01):
移动号段:
134 135 136 137 138 139 147 148 150 151 152 157 158 159 172 178 182 183 184 187 188 198
联通号段:
130 131 132 145 146 155 156 166 171 175 176 185 186
电信号段:
133 149 153 173 174 177 180 181 189 199
虚拟运营商:
170
规律:首位必为1,第二位为3、4、5、6、7、8、9,其他位随意
正则表达式:设置第一位数字为1,因为不确定以后第二位会不会增加其他数字,所以设为0-9,剩余位数也都为0-9
*/
import android.text.TextUtils;
public class PhoneNumber {
public static boolean verifyPhoneNumber(String phoneNumber) {
String telRegex = "[1]\\d{10}";
if (TextUtils.isEmpty(phoneNumber))
return false;
else return phoneNumber.matches(telRegex);
}
}
3.生成了APK文件
参考《第一行代码》学会了生成APK文件的方法
4.完成了任务一
二、明天计划的事情
1.开始做任务二
2.先解决任务二中服务器端的问题
三、遇到的问题
1.代码成功通过了编译,但在手机上运行时直接闪退,重新创建了每个控件的对象后,又成功运行了,对比前 后代码,没发现区别,不知道怎么回事。
2.所有的ImageView都出现了警告:“Image without contentDescription”,参考此篇文章查明了原因,但因为今 天急着写日报,所以没有解决。
四、收获
完成了第一个任务,信心倍增。
评论