Android控件之GridView的使用

GridView主要是类似表格的形式显示数据。这里主要是模仿别人的Demo来实现了一下。

XML布局文件之activity_main.xml


<?xml version="1.0" encoding="utf-8"?>
<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="90dp"
android:gravity="center"
android:horizontalSpacing="10dp"
android:numColumns="auto_fit"
android:stretchMode="columnWidth"
android:verticalSpacing="10dp" />

XML布局文件之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="wrap_content"
android:layout_height="wrap_content"
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>

XML之资源文件strings.xml


<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, GvActivity!</string>
<string name="app_name">GridView的使用</string>
<string name="action_settings">Settings</string>
<string name="test_name1">跳转到TestActivity1</string>
<string name="test_name2">跳转到TestActivity2</string>
<string name="test_name3">跳转到TestActivity3</string>
<string name="test_name4">跳转到TestActivity4</string>
</resources>

XML之整个应用文件AndroidManifest.xml


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.gridview"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.gridview.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".TestActivity1" android:label="@string/test_name1"/>
<activity android:name=".TestActivity2" android:label="@string/test_name2"/>
<activity android:name=".TestActivity3" android:label="@string/test_name3"/>
<activity android:name=".TestActivity4" android:label="@string/test_name4"/>
</application>

</manifest>

JAVA源代码文件:


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

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import android.widget.SimpleAdapter;
import android.widget.Toast;

public class MainActivity extends Activity {

private String texts[] = null;
private int images[] = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

images=new int[]{
R.drawable.smile1
, R.drawable.smile2
, R.drawable.smile3
, R.drawable.smile4};
texts = new String[]{
"宫式布局1"
, "宫式布局2"
, "宫式布局3"
, "宫式布局4"};

GridView gridview= (GridView) this.findViewById(R.id.gridview);
ArrayList<HashMap<String, Object>> lastImageItem = new ArrayList<HashMap<String, Object>>();
/**
* 初始化数据
*/
for(int i=0; i<4; i++){
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("imageImage", images[i]);
map.put("imageText", texts[i]);
lastImageItem.add(map);
}
/**
* lastImageItem 数据源是一个HashMap的集合
* R.layout.night_item 指定一个布局文件
* from night_item.xml布局文件中所对应的View的name
* to night_item.xml布局文件中所对应的View的id
*/
SimpleAdapter simpleItems = new SimpleAdapter(this
, lastImageItem
, R.layout.night_item
, new String[] { "itemImage", "itemText" }
, new int[] { R.id.itemImage, R.id.itemText });

gridview.setAdapter(simpleItems);

gridview.setOnItemClickListener(new OnItemClickListener(){

@Override
public void onItemClick(AdapterView<?> parent, View view, int pos,
long rowid) {
//首先得到选中的集合
HashMap<String, Object> item = (HashMap<String, Object>) parent.getItemAtPosition(pos);
//可以得到view的值
String itemText = (String) item.get("itemText");
Object object = item.get("itemImage");
Toast.makeText(MainActivity.this, itemText, Toast.LENGTH_LONG).show();
//同时知道所点击的位置,是点击了哪个文件
switch (images[pos]) {
case R.drawable.smile1:
startActivity(new Intent(MainActivity.this,TestActivity1.class));
finish();
break;
case R.drawable.smile2:
startActivity(new Intent(MainActivity.this,TestActivity2.class));
finish();
break;
case R.drawable.smile3:
startActivity(new Intent(MainActivity.this,TestActivity3.class));
finish();
break;
case R.drawable.smile4:
startActivity(new Intent(MainActivity.this,TestActivity4.class));
finish();
break;
}

}

});

}

}

JAVA源代码之跳转的文件:


import android.app.Activity;
import android.os.Bundle;

public class TestActivity1 extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}

运行不起来,不知道哪里错了!

时间: 2024-10-11 17:17:32

Android控件之GridView的使用的相关文章

Android 控件使用

1.Android控件之TextView探究 2.Android控件之EditView探究 3.Android控件之CheckBox.RadioButton探究 4.Android控件之ImageView探究 5.Android控件之GridView探究 6.Android控件之ListView探究一 7.Android控件之ListView探究二 8.Android控件之ToggleButton探究 9.Android控件之DatePicker.TimePicker探究 10.Android控

android控件篇:ViewPager+Fragment+GridView的使用(与AndroidQuery框架结合)

最近看了一个AndroidQuery的框架,里面的Demo,有个界面,让博主很喜欢.左右滑动十分顺畅,手感很好,于是拿来和大家分享一下.先看一下效果图: 从图中可以看出,上面的布局是一个Layout里面嵌套有个ViewPager,ViewPager中包含着Fragment,Fragment的布局文件包含了一个简单的GridView,GridView的Item布局很简单,就是一个100*100大小的图片.好啦,先说这么多,然后咱们看代码吧. 最外层Activity的布局文件 <?xml versi

Android基本控件之GridView

我们在使用手机的过程中,会看到一些图片配上文字的一些情况,今天我们就来介绍一下安卓控件的GridView GridView组件用来以网格方式排列视图,与矩阵类似,当屏幕上有很多元素(文字.图片或其他元素)需要显示时,可以使用该组件 二话不说,我们先上图: 今天,我们就来实现这样的一个即显示图片又显示文字的一个GridView 我们首先来分析一下,我们如果想实现这样的一个GridView都需要些什么资源吧 说到资源,我们肯定是需要这么一大堆的图片呀~ 然后,我们再来分析一下,我们需要在布局文件上做

Android控件GridView之仿支付宝钱包首页带有分割线的GridView九宫格的完美实现

Android控件GridView之仿支付宝钱包首页带有分割线的GridView九宫格的完美实现 2015-03-10 22:38 28419人阅读 评论(17) 收藏 举报  分类: Android UI(819)  Android开发(1568)  关注finddreams:http://blog.csdn.net/finddreams/article/details/43486527 今天我们来模仿一下支付宝钱包首页中带有分割线的GridView,俗称九宫格.先上图,是你想要的效果么?如果

android控件 下拉刷新pulltorefresh

外国人写的下拉刷新控件,我把他下载下来放在网盘,有时候访问不了github 支持各种控件下拉刷新 ListView.ViewPager.WevView.ExpandableListView.GridView.(Horizontal )ScrollView.Fragment上下左右拉动刷新,比下面johannilsson那个只支持ListView的强大的多.并且他实现的下拉刷新ListView在item不足一屏情况下也不会显示刷新提示,体验更好. 国内网盘地址:http://www.400gb.c

Android 控件的一些属性--持续更新中...

归纳一些冷门又可能用到的Android控件属性 1.ListView android:drawSelectorOnTop="true" 点击某一条记录,颜色会显示在最上面,记录上的文字被遮住,所以点击文字不放,文字就看不到 android:drawSelectorOnTop="false" 点击某条记录不放,颜色会在记录的后面,成为背景色,但是记录内容的文字是可见的 取消分割线/分隔线 android:divider="@null" listvi

Android控件介绍

Android控件介绍 多选按钮(CheckBox) CheckBox有两个常用的事件,OnClickListener事件和OnClickChangeListener事件 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_w

Android控件(2)RadioButton&amp;RadioGroup

抄自: http://www.cnblogs.com/wt616/archive/2011/06/20/2085531.html 学习目的: 1.掌握在Android中如何建立RadioGroup和RadioButton 2.掌握RadioGroup的常用属性 3.理解RadioButton和CheckBox的区别 4.掌握RadioGroup选中状态变换的事件(监听器) RadioButton和CheckBox的区别: 1.单个RadioButton在选中后,通过点击无法变为未选中 单个Che

Android 控件的触摸事件传递与处理

了解Android控件的触摸事件传递与处理对我们日常开发中自定义控件和触摸事件冲突解决有重大意义.Android控件的触摸事件传递和处理主要有以下几个方法,下面一一介绍. 一.与触摸事件有关的几个方法 boolean dispatchTouchEvent(MotionEvent ev);                                                                                               接收到触摸事件时,是否