我在 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));
}
}
}
正如您从代码中看到的那样,我有一个字符串数组,并且为数组中的每个字符串添加一个复选框。首次显示视图时,所有复选框都有正确的文本,但在我将设备旋转到横向或纵向模式后,所有复选框都有相同的文本(从最后一个复选框开始)。任何旋转(重绘屏幕)都不再影响文本。所有这些都保留最后一个复选框的文本。
我查看了调试器,复选框对象是每个字符串的新对象,所以我没有使用对象的同一个实例。我目前没有想法。
你知道为什么会这样吗?