EditText在refresing recyclerview上散焦

时间:2016-02-03 09:25:22

标签: android android-edittext android-recyclerview recycler-adapter

Recyclerview

中的EditText

我使用Recyclerview来显示EditText的列表。

我的要求是每当我点击EditText时,它应该打开一个数字小键盘,该项目应该在选中时突出显示。

我的代码执行以下操作:
我的片段是点击项目的监听器。 每当点击项目时,它都会调用片段中的侦听器方法,该方法会更新所选项目并刷新适配器,以便突出显示所选项目。

片段中的侦听器方法:

@Override
public void itemClicked(int position) {
    for (MyClass myObject : myObjectList) {
        myObject.isSelected = false;
    }
    myObjectList[position].isSelected = true;
    myRecyclerViewAdapter.notifyDataSetChanged();
}

在我的适配器中:

@Override
public void onBindViewHolder(ViewHolder holder, int position) {
if(myObjectList[position].isSelected){
    // highlight this item
   }else{
   // do not highlight this item
   }
}

这完全没问题。但是,只要点击了recyclerview项目中的EditText,我就会这样做。

问题是:
首先,我应该使用什么样的监听器进行EditText点击?为什么? 我使用 OnFocusChangedListener ,我在片段中调用了我的侦听器方法,选择了正确的位置,但是当它刷新适配器时,它会解冻我单击的EditText(defocuses意味着它从点击的edittext中移除光标)还有一件事它将数字键盘更改为普通键盘。

myEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                if (hasFocus) {
                    if (clickListener != null) {
                       clickListener.itemClicked(getLayoutPosition());
                    }
                }
            }
        });

根据我的代码,这个问题很明显,但我无法解决问题。
非常感谢任何帮助。

0 个答案:

没有答案