package cn.edu.njupt.allgo.activity; import cn.edu.njupt.allgo.R; import cn.edu.njupt.allgo.fragment.LoginDialogFRAGMENT; import cn.edu.njupt.allgo.logic.RefreshInterFace; import cn.edu.njupt.allgo.logic.RegisterLogic; import cn.edu.njupt.allgo.logicImpl.RegisterLogicImpl; import cn.edu.njupt.allgo.util.AvatarUtil; import android.app.Activity; import android.app.ProgressDialog; import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.support.v4.app.NavUtils; import android.support.v4.app.TaskStackBuilder; import android.util.Log; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.Toast; public class RegisterACTIVITY extends BaseActivity implements RefreshInterFace{ private EditText editText_register_uname; private RadioGroup radioGroup_register_sex; private EditText EditText_register_email; private EditText EditText_register_password; private EditText EditText_register_passconfirm; private Button Button_register_cancel; private Button button_register_submit; private String usex = "男"; private String uname; private String uemail; private String upassword; private String upassconfirm; private ProgressDialog progressDialog; private RegisterLogic registerLogic ; private ImageButton imageButton_register_avatar; private AvatarUtil avatarUtil; @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { avatarUtil.onActivityResult(requestCode, resultCode, data); super.onActivityResult(requestCode, resultCode, data); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_register); if(getActionBar() != null) { getActionBar().setDisplayHomeAsUpEnabled(true); } setFinishOnTouchOutside(false); registerLogic = new RegisterLogicImpl(this,this); initView(); } private void initView() { editText_register_uname = (EditText)findViewById(R.id.editText_register_uname); radioGroup_register_sex = (RadioGroup)this.findViewById(R.id.radioGroup_register_sex); EditText_register_email = (EditText)findViewById(R.id.EditText_register_email); EditText_register_password = (EditText)findViewById(R.id.EditText_register_password); EditText_register_passconfirm = (EditText)findViewById(R.id.EditText_register_passconfirm); Button_register_cancel = (Button)findViewById(R.id.Button_register_cancel); button_register_submit = (Button)findViewById(R.id.button_register_submit); imageButton_register_avatar = (ImageButton)findViewById(R.id.imageButton_register_avatar); avatarUtil = new AvatarUtil(imageButton_register_avatar,this); radioGroup_register_sex.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { int radioButtonId = group.getCheckedRadioButtonId(); //根据ID获取RadioButton的实例 RadioButton rb = (RadioButton)RegisterACTIVITY.this.findViewById(radioButtonId); //更新文本内容,以符合选中项 usex = rb.getText().toString() ; }}); Button_register_cancel.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { finish(); } }); button_register_submit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(checkInput() == true ) { /*Toast.makeText(RegisterACTIVITY.this, uname + usex + uemail + upassword + upassconfirm, Toast.LENGTH_SHORT).show();*/ showProgressDialog("正在注册"); registerLogic.register(uname, usex.equals("男")?1:0, uemail, upassword,avatarUtil.getAvatar()); } } }); } private boolean checkInput() { boolean flag = false ; uname = editText_register_uname.getText().toString(); uemail = EditText_register_email.getText().toString(); upassword = EditText_register_password.getText().toString(); upassconfirm = EditText_register_passconfirm.getText().toString(); if(uname.equals("")){ Toast.makeText(RegisterACTIVITY.this, "用户名没写", Toast.LENGTH_SHORT).show(); }else if(uemail.equals("")){ Toast.makeText(RegisterACTIVITY.this, "邮箱没写", Toast.LENGTH_SHORT).show(); }else if(upassword.length() < 6){ Toast.makeText(RegisterACTIVITY.this, "密码需要大于等于6位", Toast.LENGTH_SHORT).show(); }else if(upassconfirm.equals("")){ Toast.makeText(RegisterACTIVITY.this, "密码确认没写", Toast.LENGTH_SHORT).show(); }else if(!uname.matches("[\u4e00-\u9fa5\\w]+")){ Toast.makeText(RegisterACTIVITY.this, "用户名含有特殊字符", Toast.LENGTH_SHORT).show(); }else if(!uemail.matches("^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$")){ Toast.makeText(RegisterACTIVITY.this, "邮箱格式错误", Toast.LENGTH_SHORT).show(); }else if(!upassword.equals(upassconfirm)){ Toast.makeText(RegisterACTIVITY.this, "两次输入密码不同", Toast.LENGTH_SHORT).show(); }else{ flag = true ; } return flag; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: /* Intent upIntent = new Intent(this, WelcomeACTIVITY.class); if (NavUtils.shouldUpRecreateTask(this, upIntent)) { TaskStackBuilder.from(this) //如果这里有很多原始的Activity,它们应该被添加在这里 .addNextIntent(upIntent) .startActivities(); finish(); } else { NavUtils.navigateUpTo(this, upIntent); } return true;*/ finish(); } return super.onOptionsItemSelected(item); } @Override protected void onDestroy() { super.onDestroy(); closeProgressDialog(); avatarUtil.destroy(); } private void showProgressDialog(String title) { if ((!isFinishing()) && (this.progressDialog == null)) { this.progressDialog = new ProgressDialog(this); } this.progressDialog.setTitle(title); this.progressDialog.setMessage("请稍等..."); this.progressDialog.show(); } protected void closeProgressDialog() { if (this.progressDialog != null) this.progressDialog.dismiss(); } @Override public void refresh(Object result, int kind) { switch(kind){ case 1 : //注册后直接跳转到登录画面,已实现 Toast.makeText(this, "注册成功", Toast.LENGTH_SHORT).show() ; Intent intent = new Intent(this,WelcomeACTIVITY.class); intent.putExtra("login", (String)result); startActivity(intent); closeProgressDialog(); finish(); break; case -1 : String arg1 = (String) result ; Toast.makeText(this,arg1, Toast.LENGTH_SHORT).show(); closeProgressDialog(); break; } } }