2016/01/20

Android GridView 格子對話框

在 Android Dialog 對話框中,

要顯示 GridView 的畫面,

以及 GridView 的 Click 觸發事件,

簡單範例, 參考如下 :
 程式碼
// 對話框
AlertDialog ad;

private void openDialog()
{
    // 建立 GridView 物件
    GridView gridView = new GridView(this);
    
    // 設定 GridView 的欄位數
    gridView.setNumColumns( 3 );
    
    // 設定 GridView 內的物件對齊方式
    gridView.setGravity( Gravity.CENTER_HORIZONTAL );
    
    // 設定 GridView 的接收器
    gridView.setAdapter( new someAdapter(...) );
    
    // 設定 GridView Click 觸發事件
    gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView parent, View view, int position, long id)
        {
            // 用 position 取得第幾個 Grid 位置
            ...
            
            // 手動關閉 Dialog
            ad.dismiss();
        }
    });
    
    // 顯示對話框
    ad = new AlertDialog.Builder(this)
        .setTitle( "對話框標題" )
        .setView( gridView )
        .setOnCancelListener( new OnCancelListener() {
            @Override
            public void onCancel(DialogInterface arg0) {
                // 取消對話框的後續處理
            }
        })
        .show();
}

範例結果, 如下 :