<EditText
android:id="@+id/lv_item_senior_query_category_edt_val"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
android:layout_weight="4"
android:background="@drawable/senior_query_edt_boder"
android:clickable="true"
android:focusableInTouchMode="false"
android:padding="5dp"
android:textColor="@color/black"
tools:text="责任者信息" />

 

public void requestFoc(EditText mEditText) {
mEditText.setFocusable(true);
mEditText.setFocusableInTouchMode(true);
mEditText.requestFocus();
((InputMethodManager) mEditText.getContext()
.getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(mEditText, 0);
}

public void clearRequestFoc(EditText mEditText) {
//让EditText失去焦点,然后获取点击事件
mEditText.setFocusable(false);
//不获得焦点,此时会触发onclick事件
mEditText.setFocusableInTouchMode(false);
mEditText.clearFocus();
}
holder.tvVal.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
clickPos = position;

});

 getview方法里需要根据clickPos 和当前postion比较判断,然后修改数据,否则上下滑动会导致数据错乱

点击之后适时调用上面的清除和请求焦点方法