RegisterInfoActivity.java 15.5 KB
package com.hjx.personalcenter.activity;

import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.TextView;

import com.hjx.personalcenter.R;
import com.hjx.personalcenter.customdialog.CitysListDialog;
import com.hjx.personalcenter.customdialog.CountryDialog;
import com.hjx.personalcenter.customdialog.GradeListDialog;
import com.hjx.personalcenter.customdialog.ProvinceListDialog;
import com.hjx.personalcenter.customdialog.SchoolListDialog;
import com.hjx.personalcenter.db.Content;
import com.hjx.personalcenter.db.SaveParam;
import com.hjx.personalcenter.http.HttpManager;
import com.hjx.personalcenter.interfaces.DialogCallBack;
import com.hjx.personalcenter.model.CityInfo;
import com.hjx.personalcenter.model.CountyInfo;
import com.hjx.personalcenter.model.GradeInfo;
import com.hjx.personalcenter.model.ProvinceInfo;
import com.hjx.personalcenter.model.SchoolInfo;
import com.hjx.personalcenter.util.AlertUtils;
import com.hjx.personalcenter.util.GetDevicesUtil;

import java.util.ArrayList;

/**
 * 填写注册信息  熊巍
 * Created by h on 2017/8/9.
 */

public class RegisterInfoActivity extends FragmentActivity implements View.OnClickListener, DialogCallBack.GradeCallBack, DialogCallBack.ProvincesCallBack
        , DialogCallBack.CitysCallBack, DialogCallBack.CountryCallBack, DialogCallBack.SchoolCallBack {
    private EditText et_username, et_nickname, et_address;
    private ImageButton username_delete_btn, nickname_delete_btn, address_delete_btn;
    private TextView et_region, et_grade, et_school;
    private LinearLayout et_username_layout, et_address_layout;
    private Button btn_ok;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_registerinfo);
        SysApplication.getInstance().addActivity(this);
        initView();
        initData();
        initLister();
        initTextWatch();
    }

    private void initView() {
        et_username = (EditText) findViewById(R.id.et_username);
        et_nickname = (EditText) findViewById(R.id.et_nickname);
        et_address = (EditText) findViewById(R.id.et_address);
        et_region = (TextView) findViewById(R.id.et_region);
        et_grade = (TextView) findViewById(R.id.et_grade);
        et_school = (TextView) findViewById(R.id.et_school);
        btn_ok = (Button) findViewById(R.id.btn_ok);
        username_delete_btn = (ImageButton) findViewById(R.id.username_delete_btn);
        nickname_delete_btn = (ImageButton) findViewById(R.id.nickname_delete_btn);
        address_delete_btn = (ImageButton) findViewById(R.id.address_delete_btn);
        et_username_layout = (LinearLayout) findViewById(R.id.et_username_layout);
        et_address_layout = (LinearLayout) findViewById(R.id.et_address_layout);


    }

    private void initData() {
        if (Content.accountflag == 2) {
            btn_ok.setText("提交");
            et_username_layout.setVisibility(View.GONE);
            et_address_layout.setVisibility(View.GONE);

        }

    }

    private void initLister() {
        et_region.setOnClickListener(this);
        et_grade.setOnClickListener(this);
        et_school.setOnClickListener(this);
        btn_ok.setOnClickListener(this);
        username_delete_btn.setOnClickListener(this);
        nickname_delete_btn.setOnClickListener(this);
        address_delete_btn.setOnClickListener(this);


    }

    /**
     * 输入框改变的监听
     */
    private void initTextWatch() {
        et_username.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                if (s.toString().length() == 0) {
                    username_delete_btn.setVisibility(View.INVISIBLE);
                } else {
                    username_delete_btn.setVisibility(View.VISIBLE);
                }
            }

            @Override
            public void afterTextChanged(Editable s) {

            }
        });
        et_username.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                if (hasFocus) {
                    if (!et_username.getText().toString().isEmpty()) {
                        username_delete_btn.setVisibility(View.VISIBLE);
                    }
                } else {

                    username_delete_btn.setVisibility(View.INVISIBLE);
                }
            }
        });
        et_nickname.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                if (s.toString().length() == 0) {

                    nickname_delete_btn.setVisibility(View.INVISIBLE);
                } else {
                    nickname_delete_btn.setVisibility(View.VISIBLE);
                }
            }

            @Override
            public void afterTextChanged(Editable s) {

            }
        });
        et_nickname.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                if (hasFocus) {
                    if (!et_nickname.getText().toString().isEmpty()) {
                        nickname_delete_btn.setVisibility(View.VISIBLE);
                    }
                } else {
                    nickname_delete_btn.setVisibility(View.INVISIBLE);
                }
            }
        });
        et_address.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                if (s.toString().length() == 0) {

                    address_delete_btn.setVisibility(View.INVISIBLE);
                } else {
                    address_delete_btn.setVisibility(View.VISIBLE);
                }
            }

            @Override
            public void afterTextChanged(Editable s) {

            }
        });
        et_address.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                if (hasFocus) {
                    if (!et_address.getText().toString().isEmpty()) {
                        address_delete_btn.setVisibility(View.VISIBLE);
                    }
                } else {
                    address_delete_btn.setVisibility(View.INVISIBLE);
                }
            }
        });
    }

    @Override
    public void onClick(View v) {
        String register1 = et_nickname.getText().toString().trim();
        String register2 = et_region.getText().toString().trim();
        String register3 = et_grade.getText().toString().trim();
        String register4 = et_school.getText().toString().trim();
        String register5 = et_username.getText().toString().trim();
        String register6 = et_address.getText().toString().trim();
        switch (v.getId()) {
            case R.id.et_region:
                et_school.setText("");
                Content.changeadressinfoflag = 1;
                choiseregion();
                break;
            case R.id.et_grade:
                et_school.setText("");
                Content.changegradeinfoflag = 2;
                choisegrade();
                break;
            case R.id.et_school:
                if (TextUtils.isEmpty(register2) || TextUtils.isEmpty(register3)) {
                    AlertUtils.showToast(RegisterInfoActivity.this, "请选择年级和地址");
                    return;
                } else {
                    choiseschool();
                }

                break;
            case R.id.btn_ok:
                if (Content.accountflag == 2 && (TextUtils.isEmpty(register1) ||
                        TextUtils.isEmpty(register2) || TextUtils.isEmpty(register3) || TextUtils.isEmpty(register4))) {
                    AlertUtils.showToast(RegisterInfoActivity.this, "请将必填项填写完整");
                    return;
                } else if (Content.accountflag == 1 && (TextUtils.isEmpty(register1) ||
                        TextUtils.isEmpty(register2) || TextUtils.isEmpty(register3) || TextUtils.isEmpty(register4)
                        || TextUtils.isEmpty(register5) || TextUtils.isEmpty(register6))) {
                    AlertUtils.showToast(RegisterInfoActivity.this, "请将必填项填写完整");
                    return;
                } else {
//                    String register5 = et_username.getText().toString().trim();
//                    String register6 = et_region.getText().toString().trim();
//                    String register7 = et_grade.getText().toString().trim();
//                    String register8 = et_school.getText().toString().trim();
                    String grade = SaveParam.getInstance().getLoginParam(this, SaveParam.CHILDSGRADENS);
                    if (Content.accountflag == 2) {
                        String accounts = SaveParam.getInstance().getCustomizeParam(RegisterInfoActivity.this, SaveParam.ACCOUNT);
                        String userID = SaveParam.getInstance().getLoginParam(this, "userId");
//                        if ("2".equals(accounts)){
//                            grade = SaveParam.getInstance().getCustomizeParam(this, SaveParam.CHILDSGRADENS);
//                        }
                        //else {

                        // }

                        String School = SaveParam.getInstance().getLoginParam(this, SaveParam.SCHOOOlID);
                        String regionId = SaveParam.getInstance().getsaveCityParam(this, SaveParam.COUNTRY);
                        String regionId1 = SaveParam.getInstance().getsaveCityParam(this, SaveParam.CITYS);
                        String devicenumber = GetDevicesUtil.getDevicesInfo(this).getDeviceNumber();
                        if (regionId == null) {
                            regionId = regionId1;
                        }

                        try {
                            Object schoolss;
                            long auserID = Long.parseLong(userID);
                            long grades = Long.parseLong(grade);
                            if (TextUtils.isEmpty(register4)) {
                                schoolss = null;
                            } else {
                                schoolss = Long.parseLong(School);
                            }
                            long regionIds = Long.parseLong(regionId);
                            HttpManager.getInstance().addchildAccountinfo(RegisterInfoActivity.this, auserID, "http://hjxprodbucket.oss.aliyuncs.com/static/upload/boss_api/announcement/2017-08-29/a00de899-2f6d-43fb-9e30-71883842540e.png",
                                    register1, grades, schoolss, regionIds, devicenumber, register2);

                        } catch (NumberFormatException e) {
                            e.printStackTrace();
                        }

                    } else {
                        savedata();
                        Intent intent = new Intent();
                        intent.setClass(RegisterInfoActivity.this, ChoiseTextBookActivity.class);
                        startActivity(intent);
                        overridePendingTransition(R.anim.rightin, R.anim.rightout);
                    }

                }

                break;

            case R.id.username_delete_btn:
                et_username.setText("");
                break;
            case R.id.nickname_delete_btn:
                et_nickname.setText("");
                break;
            case R.id.address_delete_btn:
                et_address.setText("");
                break;
        }

    }

    private void savedata() {
        SaveParam.getInstance().saveLoginParam(this, SaveParam.REALNAME, et_username.getText().toString().trim());
        SaveParam.getInstance().saveLoginParam(this, SaveParam.NICKNAME, et_nickname.getText().toString().trim());
        SaveParam.getInstance().saveLoginParam(this, SaveParam.REGION, et_region.getText().toString().trim());
        SaveParam.getInstance().saveLoginParam(this, SaveParam.GRADES, et_grade.getText().toString().trim());
        SaveParam.getInstance().saveLoginParam(this, SaveParam.SCHOOL, et_school.getText().toString().trim());
        SaveParam.getInstance().saveLoginParam(this, SaveParam.ADDRESS, et_address.getText().toString().trim());


    }

    @Override
    protected void onResume() {
        super.onResume();
    }


    //选择地区
    private void choiseregion() {
        ProvinceListDialog.getInstance((DialogCallBack.ProvincesCallBack) RegisterInfoActivity.this).show(getSupportFragmentManager(), "ProvinceListDialog");

    }

    //选择年级
    private void choisegrade() {
        GradeListDialog.getInstance((DialogCallBack.GradeCallBack) this).show(getSupportFragmentManager(), "GradeListDialog");

    }

    //选择学校
    private void choiseschool() {
        SchoolListDialog.getInstance((DialogCallBack.SchoolCallBack) this).show(getSupportFragmentManager(), "SchoolListDialog");

    }


    @Override
    public void provinceOnItemClick(ArrayList<ProvinceInfo.ProvincesBean> data, int position, int type) {
        String regionName = data.get(position).getRegionName();
        SaveParam.getInstance().saveLoginParam(this, "sheng", regionName);
        CitysListDialog.getInstance((DialogCallBack.CitysCallBack) this).show(getSupportFragmentManager(), "CitysListDialog");
        et_region.setText("");
        et_region.setText(regionName);

    }


    @Override
    public void province3OnItemClick(ArrayList<GradeInfo.DataBean.ChildrenBean> data, int position, int type) {
        String regionName = data.get(position).getName();
        et_grade.setText(regionName);

    }

    @Override
    public void province1OnItemClick(ArrayList<CityInfo.CitiesBean> data, int position, int type) {
        String regionName = data.get(position).getRegionName();
        String provice = SaveParam.getInstance().getLoginParam(this, "sheng");
        SaveParam.getInstance().saveLoginParam(this, "shi", regionName);
        CountryDialog.getInstance((DialogCallBack.CountryCallBack) this).show(getSupportFragmentManager(), "CountryDialog");
        et_region.setText("");
        et_region.setText(provice + regionName);

    }

    @Override
    public void province2OnItemClick(ArrayList<CountyInfo.CountiesBean> data, int position, int type) {
        String regionName = data.get(position).getRegionName();
        String provices = SaveParam.getInstance().getLoginParam(this, "sheng");
        String citys = SaveParam.getInstance().getLoginParam(this, "shi");
        et_region.setText("");
        et_region.setText(provices + citys + regionName);

    }

    @Override
    public void provinceO4nItemClick(ArrayList<SchoolInfo.DataBean> data, int position, int type) {
        String regionName = data.get(position).getSchoolName();
        et_school.setText(regionName);

    }
}