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点了,都睡觉吧,明天周六,大大们好好睡个懒觉,一个礼拜的忙碌生活明早要补回来,当然不要忘记了学习哦。
温故而知新…………