GridView使用示例(三)
发布日期:2021-06-30 11:23:12 浏览次数:2 分类:技术文章

本文共 3448 字,大约阅读时间需要 11 分钟。

TestGridViewActivity如下:

package cn.com.baidu;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.AdapterView.OnItemSelectedListener;import android.widget.GridView;import android.widget.LinearLayout;import android.widget.SimpleAdapter;import android.widget.TextView;//Demo描述://GridView基础知识使用示例//PS:这是以前刚学Android的时候写的了,今天整理博客还是舍不得扔掉//2014年8月4日23:19:41//注意://1 GridView和ListView的数据的绑定非常相似.在hashMap.put("col1", drawableIDs[i]);处我们往此hashMap里//  放入的是图片的ID(即在R文件中生成的图片ID),而不是真正的图片数据.在绑定时系统会根据此ID自动加载对应的图片//2 方法 new SimpleAdapter(this, createDataList(), R.layout.grid_row, new String []{"col1","col2"}, new int []{R.id.ImageView_grid_row,R.id.TextView_grid_row});//  gridView.setAdapter(simpleAdapter);此方法的参数和使用ListView时的适配器参数基本上一样的//  第一个参数:上下文对象//  第二个参数:要被绑定的数据(List)//  第三个参数:接收此绑定的数据的布局//  第四个参数:被绑定数据的键//  第五个参数:把这些键分别绑到布局的哪个控件中//  第二和三个参数是从宏观来描述的,第四和五个参数是从微观的角度进一步描述的//3 此例中分别监听获得焦点和被点击的处理情况.这点很有借鉴意义public class TestGridViewActivity extends Activity {	private GridView gridView;	private ArrayList
> arrayList; private TextView textView; int drawableIDs []={R.drawable.a,R.drawable.b,R.drawable.c,R.drawable.d,R.drawable.e}; int jjs []={R.string.jja,R.string.jjb,R.string.jjc,R.string.jjd,R.string.jje}; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); gridView=(GridView) findViewById(R.id.GridView); SimpleAdapter simpleAdapter= new SimpleAdapter(this, createDataList(), R.layout.grid_row, new String []{"col1","col2"}, new int []{R.id.ImageView_grid_row,R.id.TextView_grid_row}); //为GridView设置适配器 gridView.setAdapter(simpleAdapter); //当条目获得焦点时的处理 gridView.setOnItemSelectedListener(new OnItemSelectedListener() { @Override public void onItemSelected(AdapterView
parent, View view, int position, long id) { textView=(TextView) findViewById(R.id.TextView); //获得焦点的条目.每个条目都是一个LinearLayout LinearLayout linearLayout=(LinearLayout) view; //获得此条目中的TextView显示的名字.从0开始,所以为1 TextView childTextView=(TextView) linearLayout.getChildAt(1); //然后在另外一个(即主TextView)中显示 textView.setText(childTextView.getText().toString()); } @Override public void onNothingSelected(AdapterView
parent) {} }); //当条目获被点击时的处理.同上. gridView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView
parent, View view,int position, long id) { textView=(TextView) findViewById(R.id.TextView); LinearLayout linearLayout=(LinearLayout) view; TextView childTextView=(TextView) linearLayout.getChildAt(1); textView.setText(childTextView.getText().toString()); } }); } public List createDataList(){ arrayList=new ArrayList
>(); for(int i=0;i
hashMap=new HashMap
(); //第一列为照片 hashMap.put("col1", drawableIDs[i]); //第二列为名字 hashMap.put("col2", this.getString(jjs[i])); arrayList.add(hashMap); } return arrayList; }}
main.xml如下:
grid_row.xml如下:

转载地址:https://it9527.blog.csdn.net/article/details/8946828 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:GridView使用示例(二)
下一篇:intent-filter详解

发表评论

最新留言

关注你微信了!
[***.104.42.241]2024年05月04日 04时19分13秒