ご注意:以下のすべてが、私は今それをテストすることはできません、私の頭の上からです。私はチャンスを取った後にそれをテストします。
私はそれがこのようなものだ仮定しています...あなたは、各チェックボックスに関連付ける列を追跡する必要があると思う:
コラム:ADD1 =>チェックボックス:add1Text カラム:ADD2を=>チェックボックス:add2Text など。
この状況では、可能であればアレイ内で手動で追跡する必要があります。あなたが使うことができるペアクラスを作ることをお勧めします。私は今、このポスト[A Java collection of value pairs? (tuples?)]
public class Pair<L,R> {
private final L left;
private final R right;
public Pair(L left, R right) {
this.left = left;
this.right = right;
}
public L getLeft() { return left; }
public R getRight() { return right; }
@Override
public int hashCode() { return left.hashCode()^right.hashCode(); }
@Override
public boolean equals(Object o) {
if (o == null) return false;
if (!(o instanceof Pair)) return false;
Pair pairo = (Pair) o;
return this.left.equals(pairo.getLeft()) &&
this.right.equals(pairo.getRight());
}
}
からクラスを変更しましたが、あなたが望むのペアを含むリストを作成する必要があります(または類似の)でしょう。
List<Pair<CheckBox, String>> list = new ArrayList<Pair<CheckBox, String>>;
list.add(new Pair<CheckBox, String>((CheckBox) findViewById(R.id.add1), "add1");
list.add(new Pair<CheckBox, String>((CheckBox) findViewById(R.id.add2), "add2");
list.add(new Pair<CheckBox, String>((CheckBox) findViewById(R.id.add3), "add3");
などなど
は、その後、あなたは
foreach (Pair<CheckBox, String> item in list)
{
if (cursor.getString(cursor.getColumnIndex(item.getLeft()) == null)
{
item.getRight().setVisibility(View.GONE);
}
else
{
item.getRight().setText(cursor.getString(cursor.getColumnIndex(item.getLeft()));
}
}
はもう少しコンパクトに何かを期待していました。同様に: 'code' for(int i = 0; i
もう一度やり直す方法を検討しますが、列の配列を格納する必要があります(もし私が考えている別の方法がうまくいくなら)。 – joshhendo
既にカラム名とチェックボックス名として使用します。 –