现在的位置: 首页 > 综合 > 正文

GridView网格菜单和SampleAdapter用法

2018年04月05日 ⁄ 综合 ⁄ 共 3776字 ⁄ 字号 评论关闭

 

参考代码:http://blog.csdn.net/hellogv/article/details/4567095

 

package com.main;

import java.util.ArrayList;
import java.util.HashMap;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.SimpleAdapter;
import android.widget.AdapterView.OnItemClickListener;

public class GridViewTestActivity extends Activity {
	
	private GridView gv;
	private ImageView iv;
	
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
		iv = (ImageView)findViewById(R.id.imageView); 
		gv = (GridView) findViewById(R.id.gridView);
		
		Integer itemImage[] = {
				R.drawable.menu01_lanya,
				R.drawable.menu02_wifi,
				R.drawable.menu03_recorder,
				R.drawable.menu04_alarm,
				R.drawable.menu05_music,
				R.drawable.menu06_file,
				R.drawable.menu07_calculator,
				R.drawable.menu08_photo,
				R.drawable.menu09_background
		};
		
		String itemText[] = {
				"蓝牙",
				"WIFI",
				"录音",
				"闹钟",
				"音乐",
				"文件管理",
				"计算器",
				"图片",
				"桌面背景"
		};
		
		SimpleAdapter sa = this.createSimpleAdapter(itemImage, itemText);	

		
     	gv.setAdapter(sa);
		gv.setOnItemClickListener(new MyOnClicListener());
    }
    
	public SimpleAdapter createSimpleAdapter(Integer itemImage[],String itemText[]){
		SimpleAdapter sa = null;
		ArrayList<HashMap<String, Object>> arraylist = new ArrayList<HashMap<String, Object>>();
		for(int i=0;i<itemImage.length;i++){
			HashMap<String, Object> hm = new HashMap<String, Object>();
			hm.put("ItemImage",itemImage[i]);
			hm.put("ItemText", itemText[i]);
			arraylist.add(hm);
		}
		sa = new SimpleAdapter(this, // 没什么解释
				arraylist,// 数据来源
				R.layout.night_item,// night_item的XML实现
				// 动态数组与ImageItem对应的子项
				new String[] { "ItemImage", "ItemText" },
				// ImageItem的XML文件里面的一个ImageView,两个TextView ID
				new int[] { R.id.ItemImage, R.id.ItemText });
		return sa;
	}
	
	public class MyOnClicListener implements OnItemClickListener {

		@Override
		public void onItemClick(AdapterView<?> arg0,// The AdapterView where the
													// click happened
				View arg1,// The view within the AdapterView that was clicked
				int arg2,// The position of the view in the adapter
				long arg3// The row id of the item that was clicked
		) {
			System.out.println("你点击了" + (arg2 + 1));

			HashMap<String,Object> hm = (HashMap<String,Object>)arg0.getItemAtPosition(arg2);
			String text = (String)hm.get("ItemText");
			Integer imageID = (Integer)hm.get("ItemImage");
			System.out.println("text="+text);
			iv.setBackgroundDrawable(GridViewTestActivity.this.getResources().getDrawable(imageID));
		}
	}

}

 

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/bg03"
    android:orientation="vertical" >

     
    <ImageView
        android:id="@+id/imageView"
        android:layout_width="fill_parent"
        android:layout_height="100px" 
        android:layout_alignParentBottom="true"
        android:width="240px"
        android:background="@drawable/img2"/>
    
    <GridView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/gridView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:columnWidth="40px"
        android:gravity="center"
        android:horizontalSpacing="10px"
        android:numColumns="3"
        android:padding="10px"
        android:stretchMode="columnWidth"
        android:verticalSpacing="10px" >
    </GridView>


</LinearLayout>

night_item.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:paddingBottom="4dip" >

    <ImageView
        android:id="@+id/ItemImage"
        android:layout_width="50px"
        android:layout_height="50px"
        android:layout_centerHorizontal="true" >
    </ImageView>

    <TextView
        android:id="@+id/ItemText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/ItemImage"
        android:layout_centerHorizontal="true"
        android:text="TextView01" >
    </TextView>

</RelativeLayout>

 

 

抱歉!评论已关闭.