LinearLayoutには、さまざまな数のチェックボックスがあります。私が1ヶ月前に持っていた質問では、誰かがチェックボックスを動的に表示するのではなく、動的に追加する方が良いと言った人がいました。LinearLayoutのチェックボックスのベストソリューション
Integer[] count = new Integer[]{1,2,3,4,5,6,7,8,9,10};
size = mFrageList.get(position).getAuswahlList().size();
for (int i = 0; i < size; i++) {
cBox = new CheckBox(this);
cBox.setText(mFrageList.get(position).getAuswahlList().get(i));
cBox.setId(count[i]);
cBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked){
antwortencode[position] += "" + buttonView.getId();
frageBeantworten.setText("Antwort :"+antwortencode[position]+" abgeben");
} else {
String id = Integer.toString(buttonView.getId());
antwortencode[position] = antwortencode[position].replaceAll(id,"");
if(!antwortencode[position].isEmpty() || antwortencode[position]!= "") {
frageBeantworten.setText("Antwort :" + antwortencode[position] + " abgeben");
} else {
frageBeantworten.setText("Keine Checkbox(en) gewählt");
}
}
}
});
antworten.addView(cBox);
現在、私はそれはそれは、文字列のうち、値の削除、Iチェックボックスをオフには、チェックすると、確認のチェックボックスに文字列を保存することができますよ。 アクティビティを更新すると、文字列が保存され、チェックボックスはmFrageList.get(position)から新しいListを取得します。getAuswahlList(); "antwortencode"リストに新しい文字列を値で埋めてください。
最後の位置に戻ると、生成された文字列がありますが、チェックボックスはもうチェックされません。しかし、彼らは古い位置から文字列を持っています。つまり、チェックボックスの状態以外はすべて保存されます。私は、cBox.setChecked(isChecked)またはbuttonView.setChecked(isChecked)またはbuttonView.setChecked(buttonView.isChecked())、あるいはほぼ同じ構文を設定することはできません。
xmlファイルの10個のチェックボックスを1つずつ宣言し、auswahlList.get(position).isEmpty()が設定されている場合は、VISIBLE.falseを設定する以外に何ができるのですか。
重要:コンテンツのサイズが画面を過度に超えたため、私のXMLはスクロール可能アクティビティです。それで私はなぜリストビューを使用できなかったのですか?ですから、私はLinearLayoutを使用するソリューションが必要です
いいえ、私はScrollableActivityを妨害して逆にするListviewの原因を使用できません。そして、1つのアクティビティで両方を使用することは不可能です(?)。限り、私はこの問題についてのstackoverflowのトピックを読んでいる限り。しかし、私はそれだけで自分の問題を解決しました。プログラミングの8時間後に私の頭と指がぬるぬるし始めます。 –