外部データに基づいてレイアウトを取得するアプリを作成しています。レイアウトは、入力データに応じて異なるブロックに分割されます。これらのブロックは、ビューフリッパーを使用して表示されます。各ブロックには、当面の間、1つ以上の「textview」と「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);
}
}
これが実際の問題の写真です。
左の画像は、そのすべての値を正常に表示しています。右の画像はビューフリッパーの2番目の位置にあり、フォーカスのある最初の画像を除いて、編集テキストの値は表示されません。また、エディットテキストがフォーカスを取得した後、ビューフリッパーの他のビューに移動してから戻っても、値が表示され続けることにも言及する必要があります。