0

メソッド「et_settingValue.setId(setting.getId());」を使用して動的にEditTextsを作成し、IDを設定する以下のコードがアダプターにあります。Editboxは、クラスSettingのすべてのインスタンスで作成され、そのIDを格納するための変数も含まれています。

この部分はすでに正常に機能していますが、IDで作成されたすべてのEditTextにアクセスし、そのデータを取得する必要があります。可能であれば、私はすでにIDを持っているので、EditTextsを格納するための別の配列を作成することは避けたいと思います。

すでに持っている動的IDを使用してそれを行う方法はありますか?

EditText et_settingValue = (EditText) view.findViewById(R.id.et_settingValue);
et_settingValue.setText(setting.getValue().trim());
et_settingValue.setId(setting.getId());

アップデート1

私の活動では、これを行おうとしています。

EditText et = new EditText(listView.getContext());
//loop to get each object child 
settingConfig.getConfigName(); //ok
settingConfig.getConfigValue(); //ok
settingConfig.getConfigId(); //ok
et = (EditText) listView.findViewById(settingConfig.getConfigId()); //not working
et.getText(); // off course it will not working

どうもありがとう

4

1 に答える 1

1

ListViewはRecycleBinを使用して、Adapterから作成されたビューを再利用するため、ListViewには少数の子ビューのみが含まれ、ListViewですべてのEditTextを見つけることはできません。

問題を解決するには、マップを使用してすべてのEditTextの値を記録する必要があります。それぞれにTextWatcherを追加し、変更されたテキストのマップの値を更新します。

于 2012-11-29T10:51:55.233 に答える