SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

業務アプリ開発に使えるUIが満載、「Xuni(ズーニー)」で作るAndroid/iOSアプリ(AD)

Androidアプリで表計算ソフトのようにデータを表示しよう

業務アプリ開発に使えるUIが満載、「Xuni(ズーニー)」で作るAndroid/iOSアプリ 第1回

  • このエントリーをはてなブックマークに追加

アプリがどのように実装されているか見てみよう

 どのように実装されているかコードを見てみましょう。

 「列の定義」にて使用されているコードは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);
	}
}
  1. FlexGridを初期化する。
  2. setItemsSourceメソッドはFlexGridに表示するデータのデータソースを設定する。
  3. 表示に必要な数の列(GridColumnクラス)を作成して、列名と先ほど設定したデータの項目名をバインドする。
  4. setReadOnlyメソッドで編集不可にできる。
  5. setFormatメソッドでデータを表示する書式("$#.##")で「$1.99」を設定する。
  6. setShowDropDownメソッドでドロップダウンリストの使用を設定する。
  7. setDataTypeメソッドで項目"Active"の列をチェックボックス型に設定する。
  8. FlexGridに作成した列を追加する。
  9. 数値の項目を編集する際にAndroidのタイムピッカーダイアログを表示する。セル編集のカスタマイズにはCellFactory機能を利用する。
  10. 列のサイズをテキストの長さに応じて自動調整する。
タイムピッカーダイアログ
タイムピッカーダイアログ

次のページ
FlexChartのサンプルプロジェクトを動かしてみよう

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
業務アプリ開発に使えるUIが満載、「Xuni(ズーニー)」で作るAndroid/iOSアプリ連載記事一覧

もっと読む

この記事の著者

山本 誠樹(ヤマモト マサキ)

 スマホアプリからクラウドアプリまで作成するフリーのデベロッパー。記事へ質問などあればお気軽にご連絡ください。 Twitter:@nnasaki blog:http://blog.nnasaki.com

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9187 2016/01/22 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング