0
ListViewのEditTextでユーザーの入力が6より大きい場合は、ListViewの同じ行にCheckBoxを追加します。ただし、最初の行に追加し続けます。私はこれが単純なものであると思われるように感じますが、他の投稿を検索した後ではわかりません。onTextChanged、生成されたCheckBoxがListViewの同じ行に追加されています
もう1つの質問です。 ListViewの各項目からデータを取得する最善の方法は、ArrayListに格納することですか? TextView/Spinner/CheckBoxのすべての値を取得するという点で何か他のものがありますか?
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
final ComboView comboView;
if(view == null){
comboView = new ComboView();
LayoutInflater layoutInflater = InputCombos.this.getLayoutInflater();
view = layoutInflater.inflate(R.layout.input_combos_view, null);
comboView.combo = (TextView) view.findViewById(R.id.combo);
comboView.numOrbs = (TextView) view.findViewById(R.id.numOrbs);
comboView.comboEdit = (EditText) view.findViewById(R.id.comboEdit);
comboView.comboElement = (Spinner) view.findViewById(R.id.comboElement);
ArrayAdapter<String> comboElements = new ArrayAdapter<>(InputCombos.this, android.R.layout.simple_spinner_item, elements);
comboElements.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
comboView.comboElement.setAdapter(comboElements);
comboView.pos = i;
comboView.comboEdit.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
if(charSequence.length() != 0){
int orbCount = Integer.parseInt((charSequence).toString());
if(orbCount >= 6){
LinearLayout comboViewLayout = (LinearLayout) findViewById(R.id.comboViewLayout);
comboView.row = new CheckBox(InputCombos.this);
//CheckBox row = new CheckBox(InputCombos.this);
comboView.row.setText("Row");
comboViewLayout.addView(comboView.row);
}
comboData.set(comboView.pos,orbCount);
System.out.println(comboData);
}
}
@Override
public void afterTextChanged(Editable editable) {
}
});
view.setTag(comboView);
} else {
comboView = (ComboView) view.getTag();
}
System.out.println(combosNum);
comboView.combo.setText(combosNum.get(i));
return view;
}
ああ現在の行でそれを探す必要があるかもしれないしそれを試してみても、私は確かにやったが、それはそれであった場合、最終的なようにビューを設定することについての何かが、わからないと述べました良いことかどうか。私はまずそれを試してみたはずです...ありがとう。 –
変数をfinalに設定するのは悪い考えではありません。あなたの場合、おそらくあなたはビューの価値を割り当てる新しい最終変数を導入する必要があります。あなたのケースでは、ビュー自身をfinalに設定することはできません。 – SimonSays