package com.ljq.gv;
import java.util.ArrayList;
import java.util.HashMap;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.SimpleAdapter;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
public class GvActivity extends Activity {
private String texts[] = null;
private int p_w_picpaths[] = null;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
p_w_picpaths=new int[]{R.drawable.p1, R.drawable.p2,
R.drawable.p3, R.drawable.p4,
R.drawable.p5,R.drawable.p6,
R.drawable.p7,R.drawable.p8};
texts = new String[]{ "宮式佈局1", "宮式佈局2",
"宮式佈局3", "宮式佈局4",
"宮式佈局5", "宮式佈局6",
"宮式佈局7", "宮式佈局8"};
GridView gridview = (GridView) findViewById(R.id.gridview);
ArrayList<HashMap<String, Object>> lstImageItem = new ArrayList<HashMap<String, Object>>();
for (int i = 0; i < 8; i++) {
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("itemImage", p_w_picpaths[i]);
map.put("itemText", texts[i]);
lstImageItem.add(map);
}
SimpleAdapter saImageItems = new SimpleAdapter(this,
lstImageItem,// 數據源
R.layout.night_item,// 顯示佈局
new String[] { "itemImage", "itemText" },
new int[] { R.id.itemImage, R.id.itemText });
gridview.setAdapter(saImageItems);
gridview.setOnItemClickListener(new ItemClickListener());
}
class ItemClickListener implements OnItemClickListener {
/**
* 點擊項時觸發事件
*
* @param parent 發生點擊動作的AdapterView
* @param view 在AdapterView中被點擊的視圖(它是由adapter提供的一個視圖)。
* @param position 視圖在adapter中的位置。
* @param rowid 被點擊元素的行id。
*/
public void onItemClick(AdapterView<?> parent, View view, int position, long rowid) {
HashMap<String, Object> item = (HashMap<String, Object>) parent.getItemAtPosition(position);
//獲取數據源的屬性值
String itemText=(String)item.get("itemText");
Object object=item.get("itemImage");
Toast.makeText(GvActivity.this, itemText, Toast.LENGTH_LONG).show();
//根據圖片進行相應的跳轉
switch (p_w_picpaths[position]) {
case R.drawable.p1:
startActivity(new Intent(GvActivity.this, TestActivity1.class));//啓動另一個Activity
finish();//結束此Activity,可回收
break;
case R.drawable.p2:
startActivity(new Intent(GvActivity.this, TestActivity2.class));
finish();
break;
case R.drawable.p3:
startActivity(new Intent(GvActivity.this, TestActivity3.class));
finish();
break;
}
}
}
}