我已经用这样的单元格创建了列表视图。
但是现在的问题是,当我再次单击“数量”编辑文本列表视图getview方法时,焦点再次转到“项目”编辑文本。
我试图要求关注“数量”编辑文本的单击事件,然后不断调用getView方法。
这是getview代码
@Override
public View getView(final int i, View layout, ViewGroup viewGroup) {
final ViewHolder holder;
if( layout == null ){
//We must create a View:
layout = inflater.inflate(R.layout.orderviewcapturevalue, viewGroup, false);
holder = new ViewHolder();
holder.atvItemName = (AutoCompleteTextView) layout.
findViewById(R.id.atvItemName);
ArrayAdapter<String> adapter = new ArrayAdapter<String>
(context, android.R.layout.select_dialog_item, arrOrderLineNames);
holder.atvItemName.setThreshold(2);
holder.atvItemName.setAdapter(adapter);
holder.tvRate = (TextView) layout.findViewById(R.id.tvRate);
holder.etQuantity = (EditText) layout.findViewById(R.id.etQuantity);
holder.tvCaptureTotal = (TextView) layout.findViewById(R.id.tvCaptureTotal);
layout.setTag(holder);
}
else
{
holder = (ViewHolder) layout.getTag();
}
holder.etQuantity.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
holder.atvItemName.setFocusableInTouchMode(false);
holder.etQuantity.requestFocus();
holder.etQuantity.setFocusableInTouchMode(true);
}
});
}
如何解决此问题?
答案 0 :(得分:0)
使用这个
EditText edittextobject = findVieById(R.id.edt_id); EditText etHasFocus;
edittextobject.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
if (etHasFocus != null) {
if (etHasFocus.getId() != view.getId()) {
etHasFocus = (EditText) view;
}
} else {
etHasFocus = (EditText) view;
}
}
return false;
}
});
并尝试关注这个 etHasFocus.requestFocus();,而不是直接关注 edittextobject 这个。