这篇文章主要是写关于Android实现地址三联动的功能,现在附上demo地址:https://github.com/qiuyueL/NewAddressDemo,里面会有详细的注释,以及控件的使用,其中还包括了一个PopupWindow的封装。先简单说一下PopupWindow的封装以及使用。
首先,先搭建一个PopupWindow视图的实现类,主要是实现一个通过泛型获取findViewById资源文件,直接通过ID来操作其中的事件方法,可以省略一个ID的注册步骤,先上一个跟目标demo相关的部分源码:
1 /** 2 * 操作PopupWindow视图的实现类 3 * Created by LQY on 2016/10/19. 4 */ 5 public class PopupViewHolder { 6 /** 7 * PopupWindow View 8 */ 9 View mPopupView; 10 11 public PopupViewHolder(View view){ 12 mPopupView = view; 13 } 14 15 /** 16 * 通过泛型获取findViewById资源文件 17 */ 18 public final <T extends View> T getView(int viewId){ 19 return (T) mPopupView.findViewById(viewId); 20 } 21 22 public void setOnItemClickListener(int viewId, AdapterView.OnItemClickListener listener){ 23 AdapterView view = getView(viewId); 24 view.setOnItemClickListener(listener); 25 } 26 27 public void setArrayAdapter(int viewId, ArrayAdapter adapter){ 28 ListView view = getView(viewId); 29 view.setAdapter(adapter); 30 } 31 }