仿京东收货地址三级联动

声明 我没有用tabLayout(pageSlidingTabStrip) + viewpager  + fragment

如果用上面的方法实现 更加简单

       

  我用的是  一个listview  去实现的该界面  代码是从项目中抽取的,没有整理的很细。

package com.basedemo.my.xi.basedemo.activity;

import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Color;
import android.graphics.drawable.BitmapDrawable;
import android.net.Uri;
import android.provider.ContactsContract;
import android.support.v7.widget.Toolbar;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewTreeObserver;
import android.view.WindowManager;
import android.view.animation.TranslateAnimation;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.PopupWindow;
import android.widget.RelativeLayout;
import android.widget.TextView;

import com.basedemo.my.xi.basedemo.R;
import com.basedemo.my.xi.basedemo.adapter.MyBaseAdapter;
import com.basedemo.my.xi.basedemo.bean.ShengShiQuBean;
import com.basedemo.my.xi.basedemo.net.NetPath;
import com.basedemo.my.xi.basedemo.utils.LogUtils;
import com.google.gson.Gson;
import com.yolanda.nohttp.rest.Response;

import java.util.List;

/**
 * @Author Xi
 * Created by zz.wbkj.xi on 2016/9/22.
 */
public class Me_CreateAddress extends MyBaseActivity {
    private EditText et_name;
    private EditText et_phone;
    private TextView et_diqu;
    private EditText et_address;
    private LinearLayout ll_choose_lianxiren;
    private LinearLayout ll_select;
    private ImageView iv_select;
    private LinearLayout ll_save_address;
    private RelativeLayout rl_choose_diqu;

    private boolean isSelect = false;
    private RelativeLayout rl_parent;
    private PopupWindow popupWindow;
    private ListView listview;
    private ShengShiQuAdapter adapter;
    private String parent_id;
    private TextView tv_sheng;
    private TextView tv_shi;
    private TextView tv_qu;
    private int index_sheng;
    private int index_shi;
    private int index_qu;
    private String sheng_parent_id;
    private String shi_parent_id;
    private String qu_parent_id;
    private TextView line;
    private LinearLayout ll_line;
    private float fromX;
    private float toX;
    private float to1;
    private float to2;
    private float to3;

    @Override
    public void init() {

    }

    @Override
    public int getLayoutId() {
        return R.layout.activity_me_create_address;
    }

    @Override
    public void initView() {
        initToolBar();
        initPop();
        rl_parent = (RelativeLayout)findViewById(R.id.rl_parent);
        ll_choose_lianxiren = (LinearLayout)findViewById(R.id.ll_choose_lianxiren);
        et_name = (EditText)findViewById(R.id.et_name);
        et_phone = (EditText)findViewById(R.id.et_phone);
        rl_choose_diqu = (RelativeLayout)findViewById(R.id.rl_choose_diqu);
        et_diqu = (TextView)findViewById(R.id.et_diqu);
        et_address = (EditText)findViewById(R.id.et_address);
        ll_select = (LinearLayout)findViewById(R.id.ll_select);
        iv_select = (ImageView)findViewById(R.id.iv_select);
        ll_save_address = (LinearLayout)findViewById(R.id.ll_save_address);
    }

    @Override
    public void initData() {

    }

    @Override
    public void initListener() {
        rl_choose_diqu.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // popwindow
                if (popupWindow.isShowing()) {
                    popupWindow.dismiss();// 关闭
                } else {
                    popupWindow.showAtLocation(rl_parent, Gravity.BOTTOM,0,0);// 显示
                    tv_sheng.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
                        @Override
                        public boolean onPreDraw() {
                            LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(tv_sheng.getMeasuredWidth() - 60, 6);
                            lp.leftMargin = 30;
                            lp.rightMargin = 30;
                            line.setLayoutParams(lp);
                            return true;
                        }
                    });
                    backgroundAlpha(0.7f);
                    requestNet_GET(NetPath.ADDRESS_GET_CITYS,1);
                }
                LogUtils.e(mContext,"点击选择地区","");


            }
        });
        ll_choose_lianxiren.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
//                Uri uri = Uri.parse("content://contacts/people");
                Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
                startActivityForResult(intent, 0);
            }
        });
        ll_select.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (isSelect){
                    iv_select.setImageResource(R.drawable.uncheck);
                    isSelect = false;
                }else {
                    iv_select.setImageResource(R.drawable.select);
                    isSelect = true;
                }
            }
        });
    }

    @Override
    public void onSucceedPaser(int what, Gson gson, Response<String> response) {
        super.onSucceedPaser(what, gson, response);
        switch (what){
            case 1:
                ShengShiQuBean bean1 = gson.fromJson(response.get(),ShengShiQuBean.class);
                List<ShengShiQuBean.DataBean> shengBeanList = bean1.getData();
                if (adapter == null){
                    adapter = new ShengShiQuAdapter(mContext,shengBeanList);
                    adapter.setTag(1);
                    listview.setAdapter(adapter);
                }else {
                    adapter.setTag(1);
                    adapter.setDatas(shengBeanList);
                    listview.smoothScrollToPosition(0);
                }
                break;
            case 2:
                ShengShiQuBean bean2 = gson.fromJson(response.get(),ShengShiQuBean.class);
                List<ShengShiQuBean.DataBean> shiBeanList = bean2.getData();
                adapter.setTag(2);
                adapter.setDatas(shiBeanList);
                listview.smoothScrollToPosition(0);
                break;
            case 3:
                ShengShiQuBean bean3 = gson.fromJson(response.get(),ShengShiQuBean.class);
                List<ShengShiQuBean.DataBean> quBeanList = bean3.getData();
                if (quBeanList==null||quBeanList.size()<=0){
                    tv_qu.setText("");
                    String shengshiqu = tv_sheng.getText().toString()+tv_shi.getText().toString()+tv_qu.getText().toString();
                    et_diqu.setText(shengshiqu);
                    popupWindow.dismiss();
                    fromX = 0;
                }else {
                    to3 = tv_sheng.getMeasuredWidth()+tv_shi.getMeasuredWidth();
                    toX = to3;
                    setLineAnimation(fromX,toX);
                    adapter.setTag(3);
                    adapter.setDatas(quBeanList);
                    listview.smoothScrollToPosition(0);
                }
                break;
        }
    }
    class ShengShiQuAdapter extends MyBaseAdapter<ShengShiQuBean.DataBean> {

        public int selectionPosition = -1;
        
  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 21
    评论
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值