package com.insthub.ecmobile.activity; // // __ // /\ \ _ // ____ ____ ___\ \ \_/ \ _____ ___ ___ // / _ \ / __ \ / __ \ \ < __ /\__ \ / __ \ / __ \ // /\ \_\ \/\ __//\ __/\ \ \\ \ /\_\ \/_/ / /\ \_\ \/\ \_\ \ // \ \____ \ \____\ \____\\ \_\\_\ \/_/ /\____\\ \____/\ \____/ // \/____\ \/____/\/____/ \/_//_/ \/____/ \/___/ \/___/ // /\____/ // \/___/ // // Powered by BeeFramework // import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import android.content.res.Resources; import android.text.InputType; import com.insthub.BeeFramework.activity.BaseActivity; import com.insthub.ecmobile.protocol.ApiInterface; import com.insthub.ecmobile.protocol.FIELD; import org.json.JSONException; import org.json.JSONObject; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.inputmethod.InputMethodManager; import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; import android.widget.LinearLayout; import com.external.activeandroid.util.ReflectionUtils; import com.external.androidquery.callback.AjaxStatus; import com.insthub.ecmobile.R; import com.insthub.BeeFramework.model.BusinessResponse; import com.insthub.BeeFramework.view.ToastView; import com.insthub.ecmobile.model.RegisterModel; public class A1_SignupActivity extends BaseActivity implements OnClickListener, BusinessResponse { private ImageView back; private Button register; private EditText userName; private EditText email; private EditText password; private EditText passwordRepeat; private LinearLayout body; private String name; private String mail; private String passwordStr; private String passwordRepeatStr; private RegisterModel registerModel; private ArrayList<String> items = new ArrayList<String>(); public static Map<Integer, EditText> edit; private ArrayList<FIELD> fields = new ArrayList<FIELD>(); private boolean flag = true; Resources resource; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.a1_signup); resource = (Resources) getBaseContext().getResources(); back = (ImageView) findViewById(R.id.register_back); register = (Button) findViewById(R.id.register_register); userName = (EditText) findViewById(R.id.register_name); email = (EditText) findViewById(R.id.register_email); password = (EditText) findViewById(R.id.register_password1); passwordRepeat = (EditText) findViewById(R.id.register_password2); body = (LinearLayout) findViewById(R.id.register_body); back.setOnClickListener(this); register.setOnClickListener(this); registerModel = new RegisterModel(this); registerModel.addResponseListener(this); registerModel.signupFields(); } //动态添加输入框 public void signupFields() { edit = new HashMap<Integer, EditText>(); if (registerModel.signupfiledslist.size() > 0) { body.setVisibility(View.VISIBLE); for (int i = 0; i < registerModel.signupfiledslist.size(); i++) { View view = LayoutInflater.from(this).inflate(R.layout.a1_register_item, null); EditText goods_name = (EditText) view.findViewById(R.id.register_item_edit); String nonull = resource.getString(R.string.not_null); if (registerModel.signupfiledslist.get(i).need.equals("1")) { //判断是否是必填 goods_name.setHint(registerModel.signupfiledslist.get(i).name + nonull); } else { goods_name.setHint(registerModel.signupfiledslist.get(i).name); } if (registerModel.signupfiledslist.get(i).name.equals("MSN")) { goods_name.setInputType(InputType.TYPE_CLASS_TEXT); } else { goods_name.setInputType(InputType.TYPE_CLASS_NUMBER); } View line = view.findViewById(R.id.register_item_line); if (i == registerModel.signupfiledslist.size() - 1) { line.setVisibility(View.GONE); } edit.put(i, goods_name); body.addView(view); } } else { body.setVisibility(View.GONE); } } @Override public void onClick(View v) { switch (v.getId()) { case R.id.register_back: finish(); break; case R.id.register_register: name = userName.getText().toString(); mail = email.getText().toString(); passwordStr = password.getText().toString(); passwordRepeatStr = passwordRepeat.getText().toString(); String user = resource.getString(R.string.user_name_cannot_be_empty); String email = resource.getString(R.string.email_cannot_be_empty); String pass = resource.getString(R.string.password_cannot_be_empty); String fault = resource.getString(R.string.fault); String passw = resource.getString(R.string.password_not_match); String req = resource.getString(R.string.required_cannot_be_empty); if ("".equals(name)) { ToastView toast = new ToastView(this, user); toast.setGravity(Gravity.CENTER, 0, 0); toast.show(); } else if (name.length() < 2) { ToastView toast = new ToastView(this, resource.getString(R.string.username_too_short)); toast.setGravity(Gravity.CENTER, 0, 0); toast.show(); } else if (name.length() > 20) { ToastView toast = new ToastView(this, resource.getString(R.string.username_too_long)); toast.setGravity(Gravity.CENTER, 0, 0); toast.show(); } else if ("".equals(mail)) { ToastView toast = new ToastView(this, email); toast.setGravity(Gravity.CENTER, 0, 0); toast.show(); }else if ("".equals(passwordStr)) { ToastView toast = new ToastView(this, pass); toast.setGravity(Gravity.CENTER, 0, 0); toast.show(); } else if (passwordStr.length() < 6) { ToastView toast = new ToastView(this, resource.getString(R.string.password_too_short)); toast.setGravity(Gravity.CENTER, 0, 0); toast.show(); } else if (passwordStr.length() > 20) { ToastView toast = new ToastView(this, resource.getString(R.string.password_too_long)); toast.setGravity(Gravity.CENTER, 0, 0); toast.show(); } else if (!ReflectionUtils.isEmail(mail)) { ToastView toast = new ToastView(this, fault); toast.setGravity(Gravity.CENTER, 0, 0); toast.show(); } else if (!passwordStr.equals(passwordRepeatStr)) { ToastView toast = new ToastView(this, passw); toast.setGravity(Gravity.CENTER, 0, 0); toast.show(); } else { StringBuffer sbf = new StringBuffer(); for (int i = 0; i < registerModel.signupfiledslist.size(); ++i) { if (registerModel.signupfiledslist.get(i).need.equals("1") && edit.get(i).getText().toString().equals("")) { ToastView toast = new ToastView(this, req); toast.setGravity(Gravity.CENTER, 0, 0); toast.show(); flag = false; break; }else{ flag = true; } items.add(edit.get(i).getText().toString()); sbf.append(edit.get(i).getText().toString() + "/"); FIELD field = new FIELD(); field.id = Integer.parseInt(registerModel.signupfiledslist.get(i).id); field.value = edit.get(i).getText().toString(); fields.add(field); } signup(); } break; } } public void signup() { if (flag) { CloseKeyBoard(); //关闭键盘 registerModel.signup(name, passwordStr, mail, fields); } } @Override public void OnMessageResponse(String url, JSONObject jo, AjaxStatus status) throws JSONException { if (registerModel.responseStatus.succeed == 1) { if (url.endsWith(ApiInterface.USER_SIGNUPFIELDS)) { signupFields(); } else if (url.endsWith(ApiInterface.USER_SIGNUP)) { Intent intent = new Intent(); intent.putExtra("login", true); setResult(Activity.RESULT_OK, intent); finish(); String wel = resource.getString(R.string.welcome); ToastView toast = new ToastView(this, wel); toast.setGravity(Gravity.CENTER, 0, 0); toast.show(); } } } // 关闭键盘 public void CloseKeyBoard() { userName.clearFocus(); InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(userName.getWindowToken(), 0); } }