在我的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) {}}
从onBindViewHolder调用updatePosition ..我将edittext内容从afterTextChanged保存到数据模型。
我现在的情况是使用MyCustomEditTextListener作为内部类。但是在多个活动中需要相同的使用逻辑。如何重写该类,以便我不必在每个回收器适配器中复制它。
在afterTextChanged()方法中,我使用如下
modelList.get(位置).setQuantity(editable.toString());
其中modelList是' Model'的ArrayList。对象。但我的问题是每个Adapter中的Model类都不同。
答案 0 :(得分:0)
您可以编写静态函数并返回TextWatcher
\MyProject\MyProject.Tests\bin\Debug
您可以将它与YourClassName.getTextWatcher()
一起使用答案 1 :(得分:0)
不知何故,您将仅在视图持有者类中实现textwatcher
。所以你可以写一个BaseViewHolder
类,它可以是abstract
,它可以根据你的需要,如果你想从子类中获取任何数据意味着你可以声明abstract
}方法并将类设为abstract
。将BaseViewHolder
类作为要为其实现此逻辑的所有ViewHolder
类的父类。如果您要在recyclerview
中实现此逻辑,这将非常有用。
如果你想在activities
和recyclerview
中实现这个逻辑,那么你应该编写一个BaseActivity
类,它将成为Activity
的父类。 }。正如我所说,这个课程可以或不可以abstract
,这取决于你的需要。
将您的代码放入该Base类广告中访问它。通过这种方式可以实现可重用性,如果您在单个位置进行更改,则会在所有其他类中受到影响。通过这种方式,你不会面对一个场景,它是在活动A中工作但不在活动B中工作。
希望这有用:)