GridView学习记录

来源:互联网 发布:金蝶软件培训教程 编辑:程序博客网 时间:2024/06/05 14:39

Android的GridView控件用于把一系列的空间组织成一个二维的网格显示出来。

public class TestGridViewActivity extends Activity{    /** Called when the activity is first created. */    GridView view;    @Override    public void onCreate(Bundle savedInstanceState)    {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        view = (GridView) findViewById(R.id.list);        view.setAdapter(new MyAdapter(TestGridViewActivity.this));        view.setOnItemClickListener(new OnItemClickListener()        {            @Override            public void onItemClick(AdapterView<?> arg0, View view, int position, long id)            {                // TODO Auto-generated method stub                Intent intent = new Intent();                intent.putExtra("id", id);                intent.setClass(TestGridViewActivity.this, MyActivity.class);                startActivity(intent);            }        });    }}

这个是主activity的内容,在这个Activity的main.xml中需要声明一个GridView

    <GridView        android:id="@+id/list"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:numColumns="4" >    </GridView>


在这个GridView中,是通过使用继承自BaseAdapter的容器来存放数据的,就需要一个MyAdapter

class MyAdapter extends BaseAdapter {Context context;public MyAdapter(Context context) {this.context = context;}private int[] bitmap = { R.drawable.b1, R.drawable.b2, R.drawable.b3,R.drawable.b4, R.drawable.b5, R.drawable.b6, R.drawable.b7,R.drawable.b8 };@Overridepublic int getCount() {// TODO Auto-generated method stubreturn bitmap.length;}@Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn position;}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {// TODO Auto-generated method stubImageView i;if (convertView == null) {i = new ImageView(context);i.setScaleType(ImageView.ScaleType.FIT_CENTER);i.setLayoutParams(new GridView.LayoutParams(120, 120));} else {i = (ImageView) convertView;}i.setImageResource(bitmap[position]);return i;}}

在后面,我们为每一个view的字对象创建一个点击的监听器,每当点击的时候,跳到一个心得Activity中,通过Intent传递数据,把id传过去,在第二个Acitivity中接收数据,根据不同的id来显示不同的内容

@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.main1);Intent intent = getIntent();int a = (int) intent.getLongExtra("id", 0);image = (ImageView) findViewById(R.id.image);image.setImageResource(bitmap[a]);}

*******需要主意的一点,同时我自己也忘记的一点,在这说一下(该打啊敲打)就是在写第二个Activity的时候,一定不要忘记在AndroidManifest中去声明。

        好了,完成了,就这么简单,你们完全可以把我的这个代码拷到自己的本地去运行,但是这样起不到学习的作用,必须在看的基础上去记,哪怕是死记下,用的时候去回想,没效果的时候,想想为什么没有起作用,是不是哪儿错了,看着自己的代码 ,好好想,实在想不到了,再去看看别人的例子,这样才会学的会,记得牢(其实我自己现在都不一定能够做到这样,这要有很强的耐性和理解能力,但是我想信,我可以通过努力,可以达到这种效果,然后以后呢,在用的时候可以手到擒来大笑)。

       小弟我刚开始写博客,把自己的学习都记录下来,当然了,很多地方都不完善,可能有些还是错误的理解,我希望高手(三人行必有我师,我相信来看的都是高手大笑)给我留下更多的宝贵的意见和建议,就算是随便谢谢你们学习android的心得,一句我就很开心了,小弟在此感谢了。

       我的排版真心很乱,o(︶︿︶)o 唉,希望有好的意见的多多提出来。

       各位,快12点了,都睡觉吧,明天周六,大大们好好睡个懒觉,一个礼拜的忙碌生活明早要补回来,当然不要忘记了学习哦大笑

       温故而知新…………