GridView的最后固定显示一个增加图片,点击图片动态增加内容item

https://blog.csdn.net/sinat_29924199/article/details/53019128

本例子实现在GridView的最后固定显示一个增加图片,点击图片动态增加内容item。

1.main.xml:

  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:tools= "http://schemas.android.com/tools"
  3. android:layout_width= "match_parent"
  4. android:layout_height= "match_parent" >
  5. <GridView
  6. android:id= "@+id/gv_test"
  7. android:numColumns= "3"
  8. android:layout_width= "match_parent"
  9. android:layout_height= "match_parent" />
  10. </RelativeLayout>
2.grid_item.xml:
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width= "match_parent"
  4. android:layout_height= "match_parent"
  5. android:orientation= "vertical" >
  6. <ImageView
  7. android:id= "@+id/item"
  8. android:layout_width= "wrap_content"
  9. android:layout_height= "wrap_content" />
3.GridViewAdapter.java:
  1. package com.yayun.gridviewdemo;
  2. import java.util.List;
  3. import android.content.Context;
  4. import android.view.LayoutInflater;
  5. import android.view.View;
  6. import android.view.ViewGroup;
  7. import android.widget.BaseAdapter;
  8. import android.widget.ImageView;
  9. public class GridViewAdapter extends BaseAdapter {
  10. private Context context;
  11. private List<Integer> list;
  12. LayoutInflater layoutInflater;
  13. private ImageView mImageView;
  14. public GridViewAdapter(Context context, List<Integer> list) {
  15. this.context = context;
  16. this.list = list;
  17. layoutInflater = LayoutInflater.from(context);
  18. }
  19. @Override
  20. public int getCount() {
  21. return list.size()+ 1; //注意此处
  22. }
  23. @Override
  24. public Object getItem(int position) {
  25. return list.get(position);
  26. }
  27. @Override
  28. public long getItemId(int position) {
  29. return position;
  30. }
  31. @Override
  32. public View getView(int position, View convertView, ViewGroup parent) {
  33. convertView = layoutInflater.inflate(R.layout.grid_item, null);
  34. mImageView = (ImageView) convertView.findViewById(R.id.item);
  35. if (position < list.size()) {
  36. mImageView.setBackgroundResource(list.get(position));
  37. } else{
  38. mImageView.setBackgroundResource(R.drawable.pic3); //最后一个显示加号图片
  39. }
  40. return convertView;
  41. }
  42. }
4.MainActivity.java:
  1. package com.yayun.gridviewdemo;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import android.os.Bundle;
  5. import android.support.v7.app.ActionBarActivity;
  6. import android.view.View;
  7. import android.widget.AdapterView;
  8. import android.widget.AdapterView.OnItemClickListener;
  9. import android.widget.GridView;
  10. import android.widget.Toast;
  11. public class MainActivity extends ActionBarActivity {
  12. private List<Integer> mDatas;
  13. private GridView mGridView;
  14. private GridViewAdapter adapter;
  15. @Override
  16. protected void onCreate(Bundle savedInstanceState) {
  17. super.onCreate(savedInstanceState);
  18. setContentView(R.layout.activity_main);
  19. mGridView=(GridView) findViewById(R.id.gv_test);
  20. initDatas();
  21. adapter= new GridViewAdapter(MainActivity. this,mDatas);
  22. mGridView.setAdapter(adapter);
  23. mGridView.setOnItemClickListener( new OnItemClickListener() {
  24. @Override
  25. public void onItemClick(AdapterView<?> parent, View view,
  26. int position, long id) {
  27. if(position==parent.getChildCount()- 1){
  28. mDatas.add(R.drawable.pic1);
  29. Toast.makeText(MainActivity. this, "您点击了添加", 1).show();
  30. adapter= new GridViewAdapter(MainActivity. this, mDatas);
  31. mGridView.setAdapter(adapter);
  32. adapter.notifyDataSetChanged();
  33. }
  34. }
  35. });
  36. }
  37. private void initDatas() {
  38. mDatas= new ArrayList<>();
  39. mDatas.add(R.drawable.pic1);
  40. mDatas.add(R.drawable.pic1);
  41. mDatas.add(R.drawable.pic1);
  42. mDatas.add(R.drawable.pic1);
  43. mDatas.add(R.drawable.pic1);
  44. }
  45. }


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值