gpt4 book ai didi

android - ListView 和 onItemClick 中的可聚焦 EditText

转载 作者:可可西里 更新时间:2023-11-01 19:05:36 25 4
gpt4 key购买 nike

在每个ListView我有的元素 EditText .

当我设置 android:focusable="false"对于 EditText然后 onItemClickListView 上项目正在工作,但是 EditText当我 click 时没有得到光标里面。

如果我设置android:focusable="true"对于 EditText , 然后 EditText是可聚焦的,但是 onItemClick对于 ListView单击它时不起作用。

如何分离onItemClick可聚焦 EditText在这个项目中?

最佳答案

感谢 @user370305 关于 OnTouchListener 的想法。现在它可以通过使用 setOnTouchListener() 为我工作:

public class AdapterListCards extends CursorAdapter implements View.OnTouchListener {
public AdapterListCards(Context context) {
super(context, null, true);
}

@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
if (view instanceof EditText) {
EditText editText = (EditText) view;
editText.setFocusable(true);
editText.setFocusableInTouchMode(true);
} else {
ViewHolder holder = (ViewHolder) view.getTag();
holder.edtCode.setFocusable(false);
holder.edtCode.setFocusableInTouchMode(false);
}
return false;
}

private class ViewHolder {
TextView txtName;
EditText edtCode;
}

@Override
public View newView(final Context context, Cursor cursor, ViewGroup parent) {
View convertView = LayoutInflater.from(context).inflate(R.layout.list_item, parent, false);
final ViewHolder holder = new ViewHolder();
holder.txtName = (TextView) convertView.findViewById(R.id.txt_name);
holder.edtCode = (EditText) convertView.findViewById(R.id.pass);
holder.edtCode.setOnTouchListener(this);
convertView.setOnTouchListener(this);
convertView.setTag(holder);

return convertView;
}

@Override
public void bindView(View view, Context context, Cursor cur) {
ViewHolder holder = (ViewHolder) view.getTag();
if (cur!=null) holder.txtName.setText(cur.getString(cur.getColumnIndex("name")));
}
}

当然:android:windowSoftInputMode="adjustPan" 用于 list 中的 Activity 。

关于android - ListView 和 onItemClick 中的可聚焦 EditText,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12089948/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com