`
未来程序员
  • 浏览: 26070 次
社区版块
存档分类
最新评论

Android之GridView

 
阅读更多

这次的Demo实现的是 通过BaseAdapter将图片和问题传给GridView ,通过点击GridView准确获取第几个

 

重点 1.如何将图片和文字通过BaseAdapter传给GridView

        2.如何通过点击GridView进行下一步操作



 

package com.example.onclickgridview;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Adapter;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.ListAdapter;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {
	
//	作用: 
//	1、对于一个没有被载入或者想要动态载入的界面, 都需要使用inflate来载入. 
//
//	2、对于一个已经载入的Activity, 就可以使用实现了这个Activiyt的的findViewById方法来获得其中的界面元素. 
    private LayoutInflater mInflater;
	//创建初始化数据源
	private String[] mad = {"1","2","3","4","5","6","7","8","9"};
	//声明控件
	private GridView mGridView;
	//声明adpter
	private Adapter mAdapter;
	
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
	//关联	
	mGridView = (GridView) findViewById(R.id.gridView1);	
	
	mInflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
	
	//新建BaseAdapter
	mAdapter = new BaseAdapter() {
		
		@Override
		public View getView(int position, View convertView, ViewGroup parent) {
			TextView text;
			ImageView imgview;
			RelativeLayout rLayout;
			//初始化时加载页面用到的 if里的东西
			 if (convertView == null) {
				 rLayout = (RelativeLayout) mInflater.inflate(R.layout.new_file, parent, false);

		        } else {
		        	rLayout = (RelativeLayout) convertView;
		        }
			String item = (String) getItem(position);
			//设置控件取回的数据
			text = (TextView) rLayout.findViewById(R.id.TextView2);

			text.setText(item);
			
			imgview = (ImageView) rLayout.findViewById(R.id.ImageView1);
			
			imgview.setImageResource(R.drawable.ic_launcher);
			
			
			return rLayout;
		}
		//本次重点 准确返回数据位置的关键 必须在getItemID设置对的位置选项默认从0开始
		@Override
		public long getItemId(int position) {
			// TODO Auto-generated method stub
			return position;
		}
		
		@Override
		public Object getItem(int position) {
			// TODO Auto-generated method stub
			return mad[position];
		}
		
		@Override
		public int getCount() {
			// TODO Auto-generated method stub
			return mad.length;
		}
	};
	
	mGridView.setAdapter((ListAdapter) mAdapter);
	//监听事件 对于按下gridView控件的其中一个做出的响应
	mGridView.setOnItemClickListener(new OnItemClickListener() {

		@Override
		public void onItemClick(AdapterView<?> parent, View view, int position,long id) {
			
			Toast.makeText(MainActivity.this, "你选择了" + (position + 1) + " 号图片", Toast.LENGTH_SHORT).show();
			
		}
		
		
	});
	
	
	
	}
	@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;
	}

}

 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    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" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

    <GridView
        android:id="@+id/gridView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/textView1"
        android:layout_marginTop="21dp"
        android:numColumns="3" >
    </GridView>

</RelativeLayout>

 

  • 大小: 11.9 KB
分享到:
评论
4 楼 未来程序员 2013-08-27  
dingran 写道
再增加个功能,用一个按钮,按一下就增加一个数据项,另一个按钮按一下就减少一个,试试吧

已经搞定
3 楼 dingran 2013-08-27  
看看关于MVC的描述:
http://www.cnblogs.com/devinzhang/archive/2012/01/26/2329869.html
2 楼 dingran 2013-08-27  
再增加个功能,用一个按钮,按一下就增加一个数据项,另一个按钮按一下就减少一个,试试吧
1 楼 dingran 2013-08-27  
如果我要从选项中取出一个对象呢?

onItemSelect你只是用到了一个position啊,没有实质性的取出内容对象啊

相关推荐

    Android之GridView视图实现

    在Android开发中,GridView是一种非常常见的布局控件,它允许我们以网格的形式展示数据,通常用于创建类似照片墙、菜单选项或图标排列等界面。在本教程中,我们将深入探讨如何实现一个基本的GridView视图,并通过...

    android之gridview图片列表[定义].pdf

    android之gridview图片列表[定义].pdf

    Android之GridView(博客源码)

    在Android开发中,GridView是一种非常常见的布局控件,它能够以网格的形式展示数据,通常用于创建类似相册、菜单或图标列表等界面。本篇博客源码深入探讨了如何在Android应用中有效地使用GridView,包括如何显示Grid...

    android Gridview分页实现

    在Android开发中,GridView是一种常用的布局控件,它允许我们以网格的形式展示数据。当我们处理大量数据时,分页加载可以提高应用性能,减少内存消耗,并提供更好的用户体验。本篇文章将详细讲解如何在Android中利用...

    android 自定义gridView 按日期显示图片和视频 galleryDemo

    android 自定义gridView 按日期显示图片和视频 galleryDemo android 自定义gridView 按日期显示图片和视频 galleryDemo android 自定义gridView 按日期显示图片和视频 galleryDemo 免费下载 给个好评!

    android gridview分页和滑动效果

    在Android开发中,GridView是一种非常常见的布局控件,它允许我们以网格的形式展示数据,通常用于创建类似相册、应用列表等场景。本教程将详细讲解如何实现GridView的分页和滑动效果。 首先,我们需要了解GridView...

    android下GridView用法

    在Android开发中,GridView是一个非常常用的布局控件,它允许我们以网格的形式展示数据,通常用于创建类似照片墙、应用列表等界面。本教程将详细讲解Android中的GridView及其使用方法。 1. GridView简介: ...

    Android横向GridView合并item放大item

    在Android开发中,GridView是一种常见的布局管理器,它允许我们以网格形式展示数据。然而,标准的GridView默认是垂直滚动的,对于某些设计需求,如创建一个横向滚动的网格视图,就需要对GridView进行定制。这个主题...

    Android下GridView的使用

    在Android开发中,GridView是一种非常常见的布局控件,它允许我们以网格的形式展示数据,通常用于创建类似照片墙、应用快捷方式或者菜单等界面。在本篇内容中,我们将深入探讨如何在Android应用中有效地使用GridView...

    android 通过GridView控件获取本地图片并动态显示 程序源码

    文章是参考博客http://blog.csdn.net/eastmount/article/details/41808179完成,主要讲述通过GridView控件点击加号图片动态添加本地相册图片,点击图片可以删除已添加图片。同时界面比较美观。 免费资源,希望对大家...

    Android中GridView点击右上角的叉号删除条目,贝塞尔曲线实现进度条

    在Android开发中,GridView是一种常用的布局控件,它允许我们以网格的形式展示数据。这个项目的重点在于两个功能:一是实现在GridView中点击右上角的叉号删除条目,二是利用贝塞尔曲线来创建动态的进度条效果。 ...

    Android 实现GridView的item合并效果

    实现GridView的横向滑动,默认为纵向滑动,主要目标实现GridView中两个或多个相邻item的合并效果,满足项目的UI设计,同时解决了item选中放大被其他item遮挡的问题;用法简单,一目了然,可供参考

    Android自定义GridView长按拖动排序

    在Android开发中,自定义GridView以实现长按拖动排序是一项常见的需求,特别是在构建具有可交互界面的应用中。本文将详细讲解如何实现这样一个功能,同时包括震动提示、固定"更多"项以及保存排序状态到数据库。 ...

    Android 实现横向滑动的GridView

    在Android开发中,GridView是一种常用的布局控件,它允许我们以网格的形式展示数据。通常,GridView默认是垂直滚动的,但有时我们可能需要实现横向滑动的GridView,以适应不同的界面设计需求。本篇文章将详细讲解...

    Android万能GridView和ListView

    在Android开发中,GridView和ListView是两种常用的布局控件,它们用于展示大量数据,并且可以进行滚动操作。这两个控件都是AdapterView的子类,因此它们的数据管理方式都是通过Adapter来实现的。在这个项目中,我们...

    Android GridView使用例子

    在Android开发中,GridView是一个非常常用的布局控件,它允许我们以网格的形式展示数据,通常用于创建类似照片墙、应用快捷方式或者菜单等界面。在这个"Android GridView使用例子"中,我们将深入探讨如何有效地利用...

    Android使用GridView异步加载(弱引用)网络图片(支持点击查看)Demo

    在Android开发中,异步加载网络图片是一项常见的需求,特别是在数据密集型的界面如GridView中。这个Demo展示了如何实现这一功能,同时支持用户点击图片查看大图。以下将详细讲解这个Demo涉及的关键知识点。 首先,...

    android开发GridView实例

    在Android开发中,GridView是一种非常常用的布局控件,它允许我们以网格的形式展示数据,通常用于创建图片库、菜单选项或者任何需要多行多列显示的界面。在本实例中,我们将深入探讨如何使用GridView来构建一个基本...

    android的GridView底部加载更多例子

    在Android开发中,GridView是一种常见的布局管理器,用于展示数据集,通常用于创建类似网格的视图,如图片、联系人列表等。本示例"android的GridView底部加载更多例子"探讨了如何在GridView中实现无限滚动加载功能,...

    android gridview多选删除

    在Android开发中,GridView是一种常用的布局控件,它允许数据以网格的形式展示,通常用于创建类似照片库或应用列表的界面。"android gridview多选删除"是一个专题,主要涉及如何实现GridView中的多选功能,并支持...

Global site tag (gtag.js) - Google Analytics