1

各 ListView 行に単一のボタンと単一の EditText を表示する ListView があります。

ArrayAdapter で ViewHolder パターンを使用しているため、すべてのボタンが単一の OnClickListener を共有しています。OnClickListener の onClick(View view) がビューを提供するため、ボタンのクリックを拾うのは簡単です (そして、getTag() を使用してモデル オブジェクトを取得します)。

TextWatcher の onTextChanged() コールバックにビュー パラメータがないため、単一の TextWatcher で変更されたテキストを取得する方法がわかりません。どんな助けでも大歓迎です!

4

2 に答える 2

1

秘訣は、汎用の TextWatcher クラスを作成することです。次に、作成する各インスタンスに、それが配置されるビューの参照を渡す必要があります。

例: https://stackoverflow.com/a/6172024/560600

于 2013-09-04T08:48:47.393 に答える
0

EditText の値を取得するには、ボタンのリスナーで次のように作業しました。

viewHolder.button.setTag(viewHolder.YourEditText);
viewHolder.button.setOnClickListener(new OnClickListener()){
    @Override
    public void onClick(View v) {
        int p = position;
        EditText edit = (EditText) v.getTag();
        String val = edit.getEditableText().toString();
       //do what you want with the value...
    }
}

どこpositionですかpublic View getView(final int position, View convertView, ViewGroup parent){...

必要に応じて、AdapterClass 全体を投稿できます。

于 2013-09-04T07:21:01.507 に答える