GridView学习记录

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 };

	@Override
	public int getCount() {
		// TODO Auto-generated method stub
		return bitmap.length;
	}

	@Override
	public Object getItem(int position) {
		// TODO Auto-generated method stub
		return position;
	}

	@Override
	public long getItemId(int position) {
		// TODO Auto-generated method stub
		return position;
	}

	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		// TODO Auto-generated method stub
		ImageView 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来显示不同的内容

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.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点了,都睡觉吧,明天周六,大大们好好睡个懒觉,一个礼拜的忙碌生活明早要补回来,当然不要忘记了学习哦大笑

       温故而知新…………

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值