自定义的spinnerView

来源:互联网 发布:数控车螺纹编程 编辑:程序博客网 时间:2024/06/09 21:38

自定义的spinnerView

在我们的项目中我们可能有时候需要用到下来类似listview可以删除可以添加的spinner样式,今天我简单的写个小案例

继承和实现

public class SpinnerView extends RelativeLayout implements View.OnClickListener
自定义一个View集成RelativeLayout并实现监听

初始化界面

View.inflate(context,R.layout.spinner,this);    mEtInput  = (EditText) findViewById(R.id.et_input);    mIvArror = (ImageView) findViewById(R.id.iv_arrow);    mIvArror.setOnClickListener(this);

点击事件

private void clickArrow() {    if (mIvArror==null){        throw new RuntimeException("请调用setAdapter去设置数据");    }    if (mWindow==null){        //contentView:显示的View        //width height:popup宽和高        mContentView = new ListView(getContext());        //设置数据        mContentView.setAdapter(mAdapter);// adapter-->list-->数据        mContentView.setBackgroundResource(R.drawable.listview_background);        int width = mEtInput.getWidth();        int height = 580;        mWindow = new PopupWindow(mContentView,width,height);        //设置获取焦点        mWindow.setFocusable(true);        //设置边缘点击收起        mWindow.setOutsideTouchable(true);        mWindow.setBackgroundDrawable(new ColorDrawable());    }    mContentView.setOnItemClickListener(mListener);    mWindow.showAsDropDown(mEtInput);}###一些简单的小接口    public void setText(String data) {    mEtInput.setText(data);}public String getText(){    return mEtInput.getText().toString();}public void setSelection(int length) {    mEtInput.setSelection(length);}    public void setOnItemClickListener(OnItemClickListener listener){    this.mListener = listener ;}@Overridepublic void onClick(View v) {     if (v==mIvArror){         clickArrow();     }}public void setAdapter(ListAdapter adapter) {    this.mAdapter = adapter;}