私のアンドロイドコードでは、私はedittextをrecyclerviewに置き、TextWatcherを使って入力した値を保存する必要がありました。その目的のために私はカスタマイズされたTextWatcherをここで提案するように使用しました。Android再利用のためにクラスを一般化するにはどうすればいいですか
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から呼び出されると、私はafterTextChangedからデータモデルへのEditTextの内容を保存しています。
今私の状況は、MyCustomEditTextListenerを内部クラスとして使用しています。しかし、複数のアクティビティで同じ使用ロジックが必要です。どのように私はすべてのリサイクラーのアダプタでそれを複製する必要はありませんクラスを書き換えることができます。以下のような何かを使用afterTextChanged()メソッドで
modelList.get(位置).setQuantity(editable.toString())。
ここで、modelListは 'Model'オブジェクトのArrayListです。しかし、私の問題は、各アダプタでModelクラスが異なることになります。
[codereview.se] – Jens