我正在构建一个基于外部数据获取其布局的应用程序。根据 indata 将布局分成不同的块。这些块在取景器的帮助下显示。在每个块中,暂时有一个或多个“textview”和“edittext”。在翻转器的第一页上,所有数据都在 textviews 和 edittexts 中显示。但在 viewflipper 的其他页面上,edittexts 中的值直到edittext 获得焦点才会显示。我不知道为什么。所以要清楚。所有编辑文本的值实际上都存在,但直到编辑文本获得焦点时才会显示。在我运行该应用程序的所有设备(模拟器、HTC Desire、HTC Wildfire)上,问题都是相同的。有谁知道如何解决这个问题?
这是生成布局的类:
public class ModuleLayout extends LinearLayout {
public ModuleLayout(Context context, ArrayList<BaseModuleItem> itemList) {
super(context);
TableLayout tempTable = new TableLayout(context);
for (int i = 0; i < itemList.size(); i++)
{
TableRow tempRow = new TableRow(context);
TextView tempTextView = new TextView(context);
tempTextView.setText(itemList.get(i).getName());
EditText tempEditText = new EditText(context);
tempEditText.setText(itemList.get(i).getItemValue());
tempRow.addView(tempTextView);
tempRow.addView(tempEditText);
tempTable.addView(tempRow);
}
tempTable.setColumnStretchable(1, true);
this.addView(tempTable);
}
}
这是实际问题的图片。
左图很好地显示了它的所有值。右图位于 viewflipper 中的第二个位置,并且不显示 edittexts 中的值,但具有焦点的第一个除外。我还应该提到,在编辑文本获得焦点后,即使我在 viewflipper 中跳转到其他视图然后返回,它也会继续显示该值。