アプリがどのように実装されているか見てみよう
どのように実装されているかコードを見てみましょう。
「列の定義」にて使用されているコードは2つです。activity_column_definitions.xmlにてFlexGridのViewを定義し、カラムの設定をColumnDefinitionsActivity.javaにて行っています。

ColumnDefinitionsActivity.javaにてどのようにカラムを設定しているかを詳しく見てみましょう。
public class ColumnDefinitionsActivity extends Activity
{
private FlexGrid mGrid;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_column_definitions);
//(1)
// initializing grid
mGrid = (FlexGrid) findViewById(R.id.flexgrid);
// auto column generation disabled in activity_column_definitions.xml
// mGrid.setAutoGenerateColumns(false);
//(2)
mGrid.setItemsSource(Customer.getList(100));
//(3)
// initialize new columns
GridColumn idColumn = new GridColumn(mGrid, "Id", "id");
idColumn.setReadOnly(true); //(4)
GridColumn firstNameColumn = new GridColumn(mGrid, "First Name", "firstName");
GridColumn lastNameColumn = new GridColumn(mGrid, "Last Name", "lastName");
GridColumn orderTotalColumn = new GridColumn(mGrid, "Order Total", "orderTotal");
orderTotalColumn.setFormat("$#.##"); //(5)
GridColumn countryColumn = new GridColumn(mGrid, "Country", "countryId");
countryColumn.setDataMap(new GridDataMap(Customer.getCounties(), "countryId", "countryName"));
countryColumn.setShowDropDown(true); //(6)
GridColumn lastOrderDateColumn = new GridColumn(mGrid, "Last Order Time", "lastOrderDate");
lastOrderDateColumn.setFormat("hh:mm a");
GridColumn activeColumn = new GridColumn(mGrid, "Active", "active");
activeColumn.setDataType(DataType.BOOLEAN); //(7)
//(8)
// add new columns
mGrid.getColumns().add(idColumn);
mGrid.getColumns().add(firstNameColumn);
mGrid.getColumns().add(lastNameColumn);
mGrid.getColumns().add(orderTotalColumn);
mGrid.getColumns().add(countryColumn);
mGrid.getColumns().add(lastOrderDateColumn);
mGrid.getColumns().add(activeColumn);
//(9)
mGrid.setCellFactory(new TimeEditorCellFactory(mGrid));
}
@Override
protected void onStart()
{
super.onStart();
//(10)
// auto resize all the columns so that the text from each row is analyzed and sets the
// column width to the highest text width.
mGrid.autoSizeColumns(0, mGrid.getColumns().size() - 1);
}
}
- FlexGridを初期化する。
- setItemsSourceメソッドはFlexGridに表示するデータのデータソースを設定する。
- 表示に必要な数の列(GridColumnクラス)を作成して、列名と先ほど設定したデータの項目名をバインドする。
- setReadOnlyメソッドで編集不可にできる。
- setFormatメソッドでデータを表示する書式("$#.##")で「$1.99」を設定する。
- setShowDropDownメソッドでドロップダウンリストの使用を設定する。
- setDataTypeメソッドで項目"Active"の列をチェックボックス型に設定する。
- FlexGridに作成した列を追加する。
- 数値の項目を編集する際にAndroidのタイムピッカーダイアログを表示する。セル編集のカスタマイズにはCellFactory機能を利用する。
- 列のサイズをテキストの長さに応じて自動調整する。

