发表于: 2018-08-10 23:56:39

4 834


一、今天完成的事情

    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”,参考此篇文章查明了原因,但因为今         天急着写日报,所以没有解决。


四、收获

    完成了第一个任务,信心倍增。



返回列表 返回列表
评论

    分享到