在我的android代码中,我需要在recyclerview中放置一个edittext并保存使用textwatcher输入的值。为此,我使用了一个定制的textwatcher,正如这里所建议的。
private class MyCustomEditTextListener implements TextWatcher {
int position;
public void updatePosition(int position)
{
this.position=position;
}
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i2,
int i3) {}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i2,
int i3) {}
@Override
public void afterTextChanged(Editable editable) {}}
updateposition是从onbindviewholder调用的。。我将edittext内容从aftertextchanged保存到数据模型中。
我现在的情况是使用mycustomedittextlistener作为内部类。但在多个活动中需要相同的使用逻辑。如何重写类,以便不必在每个回收器适配器中复制它。
在exterTextChanged()方法中,我使用如下内容
modellist.get(position).setquantity(editable.tostring());
其中modellist是“model”对象的arraylist。但我的问题是,每个适配器中的模型类是不同的。
2条答案
按热度按时间tvz2xvvm1#
您可以编写一个静态函数并返回textwatcher
您可以将它与classname.gettextwatcher()一起使用
pxyaymoc2#
无论如何,你会实现
textwatcher
仅在视图持有者类中。所以你最好能写一个BaseViewHolder
可以或不能是的类abstract
它基于您的需要,如果您想从子类中获取任何数据,那么您可以声明abstract
方法并使类abstract
. 使BaseViewHolder
类作为所有ViewHolder
要为其实现此逻辑的类。如果要在中实现此逻辑,这将很有帮助recyclerview
.如果你想在两者中都实现这个逻辑
activities
以及recyclerview
意思是,你应该写一个BaseActivity
类,它将是您的Activity
. 就像我说的,这门课能不能abstract
,可以满足您的需要。把你的代码放在基类中,然后访问它。通过这种方式可以实现可重用性,如果在一个地方进行更改,那么其他所有类中的更改都会受到影响。这样你就不会面对一个场景,它在活动a中起作用,但在活动b中不起作用。
希望这有帮助:)