接口回调
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;
}
}
}
};