android收货地址整理

来源:互联网 发布:淘宝正义哥 奶粉 假货 编辑:程序博客网 时间:2024/04/29 17:04


android 收货地址编写 :


AddressActivity:

import android.content.Intent;import android.content.res.Resources;import android.graphics.Color;import android.graphics.drawable.ColorDrawable;import android.graphics.drawable.Drawable;import android.os.Bundle;import android.util.TypedValue;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.RelativeLayout;import android.widget.TextView;import android.widget.Toast;import com.baoyz.swipemenulistview.SwipeMenu;import com.baoyz.swipemenulistview.SwipeMenuCreator;import com.baoyz.swipemenulistview.SwipeMenuItem;import com.baoyz.swipemenulistview.SwipeMenuListView;import com.jydev.myn.R;import com.jydev.myn.base.BaseActivity;import com.jydev.myn.base.LocationApplication;import com.jydev.myn.bean.AddressInfo;import com.jydev.myn.bean.AsMessageEvent;import com.jydev.myn.bean.AsOtherEvent;import com.jydev.myn.db.AddressDB;import com.jydev.myn.utils.ACache;import com.nostra13.universalimageloader.utils.L;import org.greenrobot.eventbus.Subscribe;import java.util.ArrayList;import java.util.List;import butterknife.Bind;import butterknife.ButterKnife;import butterknife.OnClick;/** * Created by pc on 2016/5/16. */public class AddressActivity extends BaseActivity {    @Bind(R.id.city_back)    ImageView cityBack;    @Bind(R.id.txt_topbar)    TextView txtTopbar;    @Bind(R.id.iv_search)    ImageView ivSearch;    @Bind(R.id.ly_top_bar)    RelativeLayout lyTopBar;    @Bind(R.id.tv_add_address)    TextView tvAddAddress;    @Bind(R.id.tv_manager)    TextView tvManager;    @Bind(R.id.tv_common_address)    TextView tvCommonAddress;    private SwipeMenuListView listView;    private List<String> list;    private AddressAdapter adapter;    private int str_position = -1;    private ACache mCache;    private int address_id;    private int alter_position;    private List<AddressInfo> address = new ArrayList<AddressInfo>();    private AddressDB addressDB;    private int circle_position;    @Override    public int getLayoutId() {        return R.layout.activity_address_list;    }    @Override    public void doMainUI() {        //初始化布局界面        txtTopbar.setText("选择服务地址");        ivSearch.setVisibility(View.GONE);        //sqlite        addressDB = AddressDB.getInstance(getBaseContext());        address = addressDB.queryAddress();        //常用地址是否可见        if (address == null) {            tvCommonAddress.setVisibility(View.INVISIBLE);        }        initView();        mCache = ACache.get(this);    }    private void initView() {        listView = ((SwipeMenuListView) findViewById(R.id.listView));        //虚拟数据源//        for (int i = 0; i < 30; i++) {//            list.add("item" + i);//        }        adapter = new AddressAdapter();        listView.setAdapter(adapter);        //点击事件一样写        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {//                Toast.makeText(mContext, "你点击了" + list.get(position), Toast.LENGTH_SHORT).show();                // TODO Auto-generated method stub                //圆形图的处理                mCache.put("item_circle_position", position + "");                Intent intent = new Intent(AddressActivity.this, OrderActivity.class);               //保存地址,展现到订单页面                String click_address = address.get(position).getProvinces() + address.get(position).getStreet();                LocationApplication.mCache.put("click_address",click_address);                startActivity(intent);                finish();            }        });        listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {            @Override            public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {//                Toast.makeText(mContext, "longClick" + list.get(position), Toast.LENGTH_SHORT).show();                return true;            }        });        //加入侧滑显示的菜单        //1.首先实例化SwipeMenuCreator对象        SwipeMenuCreator creater = new SwipeMenuCreator() {            @Override            public void create(SwipeMenu menu) {                //同理create删除item                SwipeMenuItem deleteItem = new SwipeMenuItem(mContext);                // set item background                deleteItem.setBackground(new ColorDrawable(Color.rgb(0xF9, 0x3F, 0x25)));                // set item width                deleteItem.setWidth(dp2px(90));                // set a icon                deleteItem.setIcon(R.mipmap.ic_delete);                // add to menu                menu.addMenuItem(deleteItem);            }        };        // set creator        listView.setMenuCreator(creater);        //2.菜单点击事件        listView.setOnMenuItemClickListener(new SwipeMenuListView.OnMenuItemClickListener() {            @Override            public boolean onMenuItemClick(int position, SwipeMenu menu, int index) {                final AddressInfo a = address.get(position);                switch (index) {                    case 0:                        //删除的逻辑                        if (addressDB.deleteAddress(a)) {                            Toast.makeText(getBaseContext(), "删除成功", Toast.LENGTH_LONG).show();                        } else {                            Toast.makeText(getBaseContext(), "删除失败", Toast.LENGTH_LONG).show();                        }                        address.remove(position);                        adapter.notifyDataSetChanged();                        if (address.size() == 0) {                            tvCommonAddress.setVisibility(View.INVISIBLE);                        }                        break;                }                return false;            }        });    }    private int dp2px(int dp) {        return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, getResources().getDisplayMetrics());    }    @OnClick({R.id.city_back, R.id.txt_topbar, R.id.iv_search, R.id.ly_top_bar, R.id.tv_add_address, R.id.tv_manager})    public void onClick(View view) {        switch (view.getId()) {            case R.id.city_back:                finish();                break;            case R.id.txt_topbar:                break;            case R.id.iv_search:                break;            case R.id.ly_top_bar:                break;            case R.id.tv_manager:                break;            case R.id.tv_add_address:                Intent intent = new Intent(AddressActivity.this, AlterAddressActivity.class);                startActivity(intent);                break;        }    }    class AddressAdapter extends BaseAdapter {        @Override        public int getCount() {            return address != null ? address.size() : 0;        }        @Override        public Object getItem(int position) {            return null;        }        @Override        public long getItemId(int position) {            return 0;        }        @Override        public View getView(final int position, View convertView, ViewGroup parent) {            ViewHolder holder = null;            if (convertView == null) {                convertView = View.inflate(mContext, R.layout.item_address, null);                holder = new ViewHolder();                holder.txt = (TextView) convertView.findViewById(R.id.txt);                holder.iv_add_address = (ImageView) convertView.findViewById(R.id.iv_add_address);                holder.iv_checked = (ImageView) convertView.findViewById(R.id.iv_checked);                convertView.setTag(holder);            } else {                holder = (ViewHolder) convertView.getTag();            }            holder.txt.setText(address.get(position).getProvinces() + address.get(position).getStreet());            //选择checked点击事件//            final ViewHolder finalHolder = holder;//            holder.iv_checked.setOnClickListener(new View.OnClickListener() {//                @Override//                public void onClick(View v) {////                    if (address.get(position).getStatus()) {////                        holder.iv_checked.setChecked(true);//                        address.get(position).setStatus(false);//                        Resources resources = mContext.getResources();//                        Drawable drawable = resources.getDrawable(R.mipmap.circle);//                        finalHolder.iv_checked.setImageDrawable(drawable);////                    } else {////                        holder.iv_checked.setChecked(false);//                        address.get(position).setStatus(true);//                        Resources resources = mContext.getResources();//                        Drawable drawable = resources.getDrawable(R.mipmap.circle_yes);//                        finalHolder.iv_checked.setImageDrawable(drawable);//                    }//                }//            });            //编写更改的点击事件            holder.iv_add_address.setOnClickListener(new View.OnClickListener() {                @Override                public void onClick(View v) {                    Intent intent = new Intent(mContext, AlterAddressActivity.class);                    Bundle b = new Bundle();                    b.putSerializable("address", address.get(position));                    L.d("AddressActivity", address.get(position));                    intent.putExtra("address_id", b);                    startActivity(intent);                }            });            //显示出来            String str = mCache.getAsString("item_circle_position");            if(str!=null){                circle_position = Integer.parseInt(str);            }           if(circle_position==position){               Resources resources = mContext.getResources();               Drawable drawable = resources.getDrawable(R.mipmap.circle_yes);               holder.iv_checked.setImageDrawable(drawable);           }//            if (address.get(position).getStatus()) {////                Resources resources = mContext.getResources();//                Drawable drawable = resources.getDrawable(R.mipmap.circle_yes);//                holder.iv_checked.setImageDrawable(drawable);//////            } else {////                Resources resources = mContext.getResources();//                Drawable drawable = resources.getDrawable(R.mipmap.circle);//                holder.iv_checked.setImageDrawable(drawable);//            }            return convertView;        }        public class ViewHolder {            private TextView txt;            private ImageView iv_checked;            private ImageView iv_add_address;        }    }    // This method will be called when a MessageEvent is posted    @Subscribe    public void onMessageEvent(AsMessageEvent event) {        Toast.makeText(AddressActivity.this, event.message, Toast.LENGTH_SHORT).show();    }    //    // This method will be called when a SomeOtherEvent is posted    @Subscribe    public void handleSomethingElse(AsOtherEvent event) {        Toast.makeText(AddressActivity.this, event.message, Toast.LENGTH_SHORT).show();    }}

AlterActivity

import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.EditText;import android.widget.ImageView;import android.widget.RelativeLayout;import android.widget.TextView;import android.widget.Toast;import com.jydev.myn.R;import com.jydev.myn.base.BaseActivity;import com.jydev.myn.base.LocationApplication;import com.jydev.myn.bean.AddressInfo;import com.jydev.myn.db.AddressDB;import com.jydev.myn.utils.ACache;import com.jydev.myn.utils.ToastUtil;import java.text.SimpleDateFormat;import java.util.Date;import butterknife.Bind;import butterknife.OnClick;/** * Created by pc on 2016/5/17. */public class AlterAddressActivity extends BaseActivity {    @Bind(R.id.city_back)    ImageView cityBack;    @Bind(R.id.txt_topbar)    TextView txtTopbar;    @Bind(R.id.iv_search)    ImageView ivSearch;    @Bind(R.id.tv_manager)    TextView tvManager;    @Bind(R.id.ly_top_bar)    RelativeLayout lyTopBar;    @Bind(R.id.tv_location_city)    TextView tvLocationCity;    @Bind(R.id.tv_address_name)    TextView tvAddressName;    @Bind(R.id.et_address_big)    EditText etAddressBig;    @Bind(R.id.et_city_small)    EditText etCitySmall;    @Bind(R.id.tv_delete_address)    TextView tvDeleteAddress;    private String address_big;    private String address_small;//    private ACache mCache;    private String address;    private String address_id;    private AddressInfo myAddress;    private AddressInfo addressinfo;    private AddressDB addressDB;    @Override    public int getLayoutId() {        return R.layout.activity_alter_address;    }    @Override    public void doMainUI() {        //初始化布局界面        txtTopbar.setText("修改地址");        ivSearch.setVisibility(View.GONE);        tvManager.setVisibility(View.VISIBLE);        //默认不显示删除        //sqlite        myAddress = new AddressInfo();//插入数据        addressDB = AddressDB.getInstance(mContext);//new 一个数据库对象        //  获得当前的item位置list集合的对象,这个是修改传过来得数据        Intent intent = getIntent();        Bundle b =  intent.getBundleExtra("address_id");        //获取首页显示的城市,并显示        String choice_city =  LocationApplication.mCache.getAsString("city");        tvLocationCity.setText(choice_city);        if(b!=null){            addressinfo = (AddressInfo) b.get("address");            etAddressBig.setText(addressinfo.getProvinces());            etCitySmall.setText(addressinfo.getStreet());            //同时显示出删除            tvDeleteAddress.setVisibility(View.VISIBLE);            //再次保存,这里是避免id为null            myAddress.setId(addressinfo.getId());            myAddress.setProvinces(addressinfo.getProvinces());            myAddress.setStreet(addressinfo.getStreet());            myAddress.setStatus(addressinfo.getStatus());        }    }    @OnClick({R.id.city_back, R.id.txt_topbar, R.id.iv_search, R.id.tv_manager, R.id.ly_top_bar, R.id.tv_location_city, R.id.tv_address_name, R.id.et_address_big, R.id.et_city_small, R.id.tv_delete_address})    public void onClick(View view) {        switch (view.getId()) {            case R.id.city_back:                finish();                break;            case R.id.txt_topbar:                break;            case R.id.iv_search:                break;            case R.id.tv_manager:                // 保存数据                myAddress.setStreet(etCitySmall.getText().toString());                myAddress.setProvinces(etAddressBig.getText().toString());                //判断信息是否完整                if (myAddress.getProvinces().length() < 1 || myAddress.getStreet().length() < 1                        ) {                    ToastUtil.showShort(mContext,"请完整填写个人信息");                    return;                }                //存入数据库                if (addressinfo != null) {                    //修改                    if (addressDB.updeteAddress(myAddress)) {                        Toast.makeText(getBaseContext(), "修改收货地址成功", Toast.LENGTH_LONG).show();                    } else {                        Toast.makeText(getBaseContext(), "修改收货地址失败", Toast.LENGTH_LONG).show();                    }                } else {                    //先添加时间插入                    SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");                    Date date = new Date();                    String id = format.format(date);                    myAddress.setId(id);                    //插入                    if (addressDB.insertAddress(myAddress)) {                        Toast.makeText(getBaseContext(), "添加收货地址成功", Toast.LENGTH_LONG).show();                    } else {                        Toast.makeText(getBaseContext(), "添加收货地址失败", Toast.LENGTH_LONG).show();                    }                }                Intent intent = new Intent(AlterAddressActivity.this, AddressActivity.class);                startActivity(intent);                finish();                break;            case R.id.ly_top_bar:                break;            case R.id.tv_location_city:                break;            case R.id.tv_address_name:                break;            case R.id.et_address_big:                break;            case R.id.et_city_small:                break;            case R.id.tv_delete_address:                //删除的逻辑                if (addressDB.deleteAddress(addressinfo)) {                    Toast.makeText(getBaseContext(), "删除成功", Toast.LENGTH_LONG).show();                } else {                    Toast.makeText(getBaseContext(), "删除失败", Toast.LENGTH_LONG).show();                }                Intent intent_delete = new Intent(mContext,AddressActivity.class);                startActivity(intent_delete);                finish();                break;        }    }}

上面两个类是收货地址的主要代码:


参考的demo:


https://yunpan.cn/cSFjJ9pixcFbt  访问密码 46d4

https://yunpan.cn/cSFjVBspvpJ8U  访问密码 872f

https://yunpan.cn/cSFjwHuuka5Ka  访问密码 d664



0 0
原创粉丝点击