GridViewを使ってみたのでメモしておこう。
グリッド状にものを配置したいことって結構よくあると思うので。
プロジェクトの作成
MainActivityを編集してGridViewを使う
初期状態ではRelativeLayoutの中にTextViewで世界にこんにちはしてる状態なので、要らないもの削ってGridViewだけにしてあげる。
(レイアウトの変更の機能は地味に便利だなぁと)
Gridの中身のレイアウトを作る
とりあえず今回は文字列を淡々と表示したいだけだったのでTextViewを一番上に。
とりあえずソースコード
MainActivity.java
package jp.ahox.gridviewtest;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.view.Menu;
import java.text.DecimalFormat;
import java.util.ArrayList;
import android.widget.ArrayAdapter;
import android.widget.GridView;
public class MainActivity extends Activity {
private ArrayList<String> gridItems; // GridViewのアイテム
private ArrayAdapter<String> gridAdapter; // GridViewへアイテムを渡すのに使うアダプタ
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// GridViewの初期化
initGridItems();
setGridAdapter();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
// GridItemsの初期化を行う。
private void initGridItems(){
this.gridItems = new ArrayList<String>(); // gridItemsをnewする。
DecimalFormat decFrm = new DecimalFormat("000"); // 数値を3桁ゼロ詰で文字列にするフォーマット
int i;
for(i=0; i<1000; i++){ // 1000個のアイテムを作ってみる。
this.gridItems.add("item No." + decFrm.format(i));
}
}
// GridViewにアダプタをセットする。
private void setGridAdapter(){
// gridAdapterの生成(layout/item_gridview1.xml に従って、gridItemsごとのViewをつくらせる。)
int id_gridview1 = R.layout.item_gridview1; // layout/item_gridview1のIDの取得
Context con_thisapp = getApplicationContext(); // このアプリケーションのコンテキストの取得
this.gridAdapter = new ArrayAdapter<String>(con_thisapp, id_gridview1, this.gridItems);
// GridViewの実体へのアダプタの設定
GridView obj_gridview1 = (GridView)findViewById(R.id.GridView1); // GridViewの実体の取得
obj_gridview1.setAdapter(this.gridAdapter);
}
}
layout/activity_main.xml
<GridView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/GridView1" android:layout_width="match_parent" android:layout_height="match_parent" android:numColumns="3" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > </GridView>
layout/item_gridview1.xml
<?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:text="Medium Text" android:textAppearance="?android:attr/textAppearanceMedium" android:textColor="#000000" />































0件のコメント