タイトルからは私が尋ねたいことは少し不明な場合がありますので、説明してください。アンドロイドセーブのダイナミックビューの値
私のプロジェクトでは、whileループで動的なビューを作成する必要があります。そのようです;
private void loadCheckPointQuantity() {
final LinearLayout rgLayoutContainer = (LinearLayout)findViewById(R.id.quantityAnswers);
_answerCursor.moveToFirst();
while(_answerCursor.isAfterLast() == false) {
LinearLayout rgContainer = new LinearLayout(this);
rgContainer.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
rgContainer.setOrientation(LinearLayout.HORIZONTAL);
final ImageView checked = new ImageView(this);
checked.setMinimumHeight(30);
checked.setMinimumWidth(30);
if(_answerCursor.getInt(CPA_IS_CHECKED_COL) == 1) {
checked.setBackgroundResource(R.drawable.btn_check_buttonless_on);
} else {
checked.setBackgroundResource(R.drawable.ic_delete);
}
checked.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
TextView txtAmount = new TextView(this);
txtAmount.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
txtAmount.setText((_answerCursor.getPosition() + 1) + "/" + _answerCursor.getCount());
txtAmount.setTextSize(22);
RadioGroup rgAnswer = new RadioGroup(this);
rgAnswer.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
rgAnswer.setOrientation(RadioGroup.HORIZONTAL);
rgAnswer.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch(checkedId) {
case 0:
checked.setBackgroundResource(R.drawable.ic_delete);
break;
case 1:
checked.setBackgroundResource(R.drawable.btn_check_buttonless_on);
break;
}
}
});
RadioButton rbYes = new RadioButton(this);
rbYes.setText(R.string.yes);
rbYes.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
rbYes.setId(1);
RadioButton rbNo = new RadioButton(this);
rbNo.setText(R.string.no);
rbNo.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
rbNo.setId(0);
ImageButton camButton = new ImageButton(this);
camButton.setImageResource(R.drawable.ic_menu_camera);
camButton.setLayoutParams(new LayoutParams(70, 70));
final EditText txtNote = new EditText(this);
txtNote.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
txtNote.setEnabled(false);
txtNote.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View view, boolean hasFocus) {
if(!hasFocus) {
txtNote.setSingleLine(true);
} else {
txtNote.setSingleLine(false);
}
}
});
rgAnswer.addView(rbYes);
rgAnswer.addView(rbNo);
rgContainer.addView(checked);
rgContainer.addView(txtAmount);
rgContainer.addView(rgAnswer);
rgContainer.addView(camButton);
rgContainer.addView(txtNote);
rgLayoutContainer.addView(rgContainer);
if(_answerCursor.getInt(CPA_ANSWER_COL) == 1) {
rbYes.setChecked(true);
} else if(_answerCursor.getInt(CPA_ANSWER_COL) == 0) {
rbNo.setChecked(true);
}
if(_answerCursor.getInt(CPA_ANSWER_COL) == 0 || _answerCursor.getInt(CPA_ANSWER_COL) == 1) {
txtNote.setEnabled(true);
}
_answerCursor.moveToNext();
}
_answerCursor.moveToFirst();
}
何が起こるかは、ループが交差する回数を決定するフィールドがデータベースにあります。量。したがって、数量が5の場合は、コンポーネントを5回作成する必要があります。
問題は、私はこの方法ですべてのことを行うので、私は個々のビューにアクセスすることができない、
です。 たとえば、現実にはこれが必要です。
ボタンをクリックします。次に、すべての結果をデータベースに保存する必要があります。 EditTextとisCheckedのradiogroupの結果です。
問題は、個々のビューにどのようにアクセスできるかわかりません。 私はこれを解決するためにいくつかのことを考えました。しかし、彼らはすべて私の頭の上に疑問符を作成することになります
回答を表すクラスを作成しようとしました(isChecked、メモなど(ゲッターとセッターを使って)) すべてをarraylistに入れてください。
このArrayListの中で答えを置く。働く。しかし、それは次の問題で私を残しする必要があります。どのようなIAテキストの変更?どのように私はこれを扱うことができますか?
私が観測を使用している場合、私は答えクラスを作成する必要がありますすべてのメンバーに対してsetChanges()を呼び出し、loadCheckPointQuantityを含むクラスでobservableを実装する必要がありますか?
私は観測値を正確に0.4回経験しました。
次のボタンを押したときに最新のデータを保存するにはどうすればよいですか?
それは漠然としたかもしれないので、私は...
絶対に無知午前:
私が達成しようとするどのような:ヘルプは が必要:どのようにデータベース にすべてのビューからの最新のデータを保存でボタンをクリック
あなたがこのポストを読んだり見たり読んだりしていた時間は非常に感謝しています。より高い答え。
もっとコードや説明が必要な場合は、私に知らせて、私はベストを尽くします。