继承现有控件类
public class LeftButtonBar extends LinearLayout { // 默认实现的构造函数 begin public LeftButtonBar(Context context) { super(context); } public LeftButtonBar(Context context, @Nullable AttributeSet attrs) { super(context, attrs); } public LeftButtonBar(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } // public LeftButtonBar(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { // super(context, attrs, defStyleAttr, defStyleRes); // } // 默认实现的构造函数 end /** * 绘制页面的时候,加载视图并初始化控件。 * */ @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); InitControl(); } private Context ctx; public boolean isInit = false;// 是否已经初始化标记,避免重复初始化。 public boolean isInitView = false;// 是否已经挂载视图文件,避免重复初始化。 private ListView mListViewLv1;// 列表控件 // 列表项点击事件 private OnClickListener itemClickListener; public OnClickListener getItemClickListener() { return itemClickListener; } public void setItemClickListener(OnClickListener itemClickListener) { this.itemClickListener = itemClickListener; } // 数据源 private List<PosButtonDataView> posButtonListLevel1; public List<PosButtonDataView> getPosButtonListLevel1() { return posButtonListLevel1; } public void setPosButtonListLevel1(List<PosButtonDataView> posButtonListLevel1) { this.posButtonListLevel1 = posButtonListLevel1; } /** * 加载控件、加载视图。 */ public void InitControl() { try { if (isInit == true) { return; } isInit = false; if(!isInitView) { // 加载视图 View.inflate(getContext(), R.layout.left_button_bar, this); isInitView = true; } ctx = getContext(); // 查找视图中的控件 mListViewLv1 = findViewById(R.id.listViewLv1); ListViewAdapterFFLevel1.CurrentSelectItem = -1; ListViewAdapterFFLevel1 adapterLv1 = new ListViewAdapterFFLevel1(ctx, R.layout.ff_stock_make_item_lv1, getPosButtonListLevel1()); adapterLv1.setItemClickListener(getItemClickListener()); mListViewLv1.setAdapter(adapterLv1); // 初始化成功,标记为true,避免重复初始化。 isInit = true; } catch (Exception ex) { slog.e("LeftButtonBar", ex); } } }
标签:控件,自定义,视图,LeftButtonBar,attrs,context,Android,public From: https://www.cnblogs.com/xsj1989/p/17507859.html