0
我有一個顯示多個複選框的android視圖。它們都是動態添加的,並且我爲每個部分設置了一個文本。安卓複選框在切換到橫向時更改文本
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LinearLayout layout = (LinearLayout) findViewById(R.id.layout);
LayoutInflater inflater = getLayoutInflater();
for (String string : getResources().getStringArray(R.array.string_array)) {
LinearLayout searchField = (LinearLayout) inflater.inflate(R.layout.cb, null);
CheckBox checkBox = (CheckBox) searchField.findViewById(R.id.checkBox1);
checkBox.setText(string);
layout.addView(searchField, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
}
}
}
從代碼中可以看到,我有一個字符串數組,併爲數組中的每個字符串添加一個複選框。首次顯示視圖時,所有複選框都具有正確的文本,但在將設備旋轉到橫向或縱向模式後,所有複選框都具有相同的文本(來自最後一個複選框)。任何旋轉(重畫屏幕)都不會影響文本。它們都保留在最後一個複選框的文本中。
我已經看過調試器,複選框對象是每個字符串的新對象,所以我不使用同一個對象實例。我目前沒有想法。
你知道爲什麼會發生這種情況嗎?
的問題是不是與複選框的值,它實際上是出現在複選框的文本。這應該保持不變,考慮這行「checkBox.setText(string);」 –