請注意:下面的一切都是從我的頭頂,我現在不能測試它。稍後當我有機會的時候我會測試它。
我想你會需要跟蹤的哪一列與每個複選框關聯......我假定它是這樣的:
柱:ADD1 =>複選框:add1Text 柱:ADD2 =>複選框:add2Text 等等等等。
在這種情況下,您需要手動跟蹤它們,可能在數組中。我建議製作一個可以使用的Pair類。我從這篇文章[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
2012-02-06 05:24:37
我會研究另一種可以很快完成的方法,但是您需要存儲一列數組(如果我想到的替代方法可行)。 – joshhendo 2012-02-06 05:26:43
已經有一個用於列名稱的列爲複選框名稱。 – 2012-02-06 05:27:32