在列表视图的一个单元格中处理多个Edittext的正确方法是什么?

时间:2019-05-03 07:13:07

标签: android listview

我已经用这样的单元格创建了列表视图。

enter image description here

但是现在的问题是,当我再次单击“数量”编辑文本列表视图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);
                }

            });
}

如何解决此问题?

1 个答案:

答案 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 这个。

相关问题