接口回调

2019-02-21  本文已影响0人  君袅

1.提供接口,传递接口对象

OnItemClickListener onItemClickListener; //ma
public void setOnItemClickListener(OnItemClickListener onItemClickListener){// onItemClickListener外界传进来 ma
this.onItemClickListener = onItemClickListener;
}
接口
public interface OnItemClickListener{
void onItemClick(View view, ViewHolder viewHolder, int position);
}

2.实现接口,重写接口的实现方法

在Activity页面用adapter设置监听事件
adapter.setOnItemClickListener(this);
//被回调时用到的接口放
@Override
public void onItemClick(View view, MyAdapter.ViewHolder viewHolder, int position) {
Toast.makeText(MainActivity.this,list.get(position).toString(),Toast.LENGTH_LONG).show();;
}

3.接口回调

在onCreateViewHolder()方法中用view控件调用setOnItemClickListener方法
调用传进来接口的方法,实现调用
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int position = viewHolder.getAdapterPosition();
if(onItemClickListener!=null){
onItemClickListener.onItemClick(view,viewHolder,position);
}
}
});、

4.EditText中监听

        loginTxtPhone.setOnFocusChangeListener(onFocusAutoClearHintListener);
        loginTxtPhone.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

            }

            @Override
            public void afterTextChanged(Editable s) {
                if (s.length() == 11) {
                    String code = loginTxtYanzheng.getText().toString();
                    maidian("完成输入手机号", s.toString(), TextUtils.isEmpty(code) ? "" : code);
                }
            }
        });


    public View.OnFocusChangeListener onFocusAutoClearHintListener = new View.OnFocusChangeListener() {
        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            if (hasFocus) {
                switch (v.getId()) {
                    case R.id.login_txt_phone:
                        maidian("准备输入手机号", "-1s", "");
                        break;
                    case R.id.login_txt_yanzheng:
                        maidian("准备输入验证码", "", "-1s");
                        break;
                }
            }
        }
    };
上一篇 下一篇

猜你喜欢

热点阅读