0

TextWatcher に問題があります。アイテムを検索するたびに、ArrayAdapter で "0" が返されます。しかし、フィルタを使用せずにリストの任意の項目をクリックすると、正しい位置が得られます。

TextWatcher を使用して他の関数を実装した後、正しい位置を取得する必要があります。

誰でも私を助けることができますか?なぜなら、私はまだプログラミングの方法を学んでいるからです。ありがとうございました。

@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

    Name name = adpName.getItem(position);

    Intent it = new Intent(this, ActAddName.class);

    it.putExtra(PAR_NAME, name);

    startActivityForResult(it, 0);

    Toast.makeText(getBaseContext(), "Position: " + position, Toast.LENGTH_LONG).show();

}


private class FilterName implements TextWatcher {

    private ArrayAdapter<Name> arrayAdapter;

    private FilterName(ArrayAdapter<Name> arrayAdapter) {
        this.arrayAdapter = arrayAdapter;
    }

    public void setArrayAdapter(ArrayAdapter<Name> arrayAdapter) {
        this.arrayAdapter = arrayAdapter;
    }

    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {

    }

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
        arrayAdapter.getFilter().filter(s);
    }

    @Override
    public void afterTextChanged(Editable s) {

    }
}
4

0 に答える 0