私の Android プロジェクトでは、TextChangedListener (TextWatcher) を編集テキスト ビューに追加する必要がありました。これには 3 つの部分があります。
onTextChanged()
beforeTextChanged()
afterTextChanged()
これら3つの違いは何ですか?キーリスナーでテーブルの検索を実装する必要がありましたが、私の場合、これら 3 つすべてが同じように見えました。また、それらは同じように機能しました。商品名の一部を入力すると、入力した文字列が含まれる商品のみ表が再描画されます。でもそのafterTextChanged()
部分は使いました。私のコードは次のとおりです。
EditProduct.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub
// System.out.println("onTextChanged"+s);
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
// System.out.println("beforeTextChanged"+s);
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
// System.out.println("afterTextChanged"+s);
String new_prx = s.toString();
System.out.println(s);
mini_productList = new ArrayList<Product>();
// mini_productList
int count = 0;
if (new_prx.equals("")) {
loadtableProducts(productList);
} else {
for (int i = 0; i < productList.size(); i++) {
if (productList.get(i).getDescription().toString()
.substring(0, (new_prx.length()))
.equalsIgnoreCase(new_prx)) {
mini_productList.add(productList.get(i));
count++;
}
}
loadtableProducts(mini_productList);
}
}
});
では、この3つについて誰か説明してもらえますか?