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

来源:互联网 发布:mac装win10后没有无线 编辑:程序博客网 时间:2024/05/29 17:36
public class GridViewAdapter extends BaseAdapter {  
    private Context context;  
    private List<Integer> list;  
    LayoutInflater layoutInflater;  
    private ImageView mImageView;  
  
    public GridViewAdapter(Context context, List<Integer> list) {  
        this.context = context;  
        this.list = list;  
        layoutInflater = LayoutInflater.from(context);  
    }  
  
    @Override  
    public int getCount() {  
        return list.size()+1;//注意此处  
    }  
  
    @Override  
    public Object getItem(int position) {  
        return list.get(position);  
    }  
  
    @Override  
    public long getItemId(int position) {  
        return position;  
    }  
  
    @Override  
    public View getView(int position, View convertView, ViewGroup parent) {  
  
        convertView = layoutInflater.inflate(R.layout.grid_item, null);  
        mImageView = (ImageView) convertView.findViewById(R.id.item);  
        if (position < list.size()) {  
            mImageView.setBackgroundResource(list.get(position));  
        }else{  
            mImageView.setBackgroundResource(R.drawable.pic3);//最后一个显示加号图片  
        }  
        return convertView;  
    }  
  
}  

==========================================================
public class MainActivity extends ActionBarActivity {  
    private List<Integer> mDatas;  
private GridView mGridView;  
private GridViewAdapter adapter;  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_main);  
        mGridView=(GridView) findViewById(R.id.gv_test);  
          
        initDatas();  
        adapter=new GridViewAdapter(MainActivity.this,mDatas);  
        mGridView.setAdapter(adapter);  
        mGridView.setOnItemClickListener(new OnItemClickListener() {  
  
            @Override  
            public void onItemClick(AdapterView<?> parent, View view,  
                    int position, long id) {  
                if(position==parent.getChildCount()-1){  
                    mDatas.add(R.drawable.pic1);  
                    Toast.makeText(MainActivity.this"您点击了添加"1).show();  
                    adapter=new GridViewAdapter(MainActivity.this, mDatas);  
                    mGridView.setAdapter(adapter);  
                    adapter.notifyDataSetChanged();  
                }  
                  
            }  
        });  
          
    }  
    private void initDatas() {  
        mDatas=new ArrayList<>();  
        mDatas.add(R.drawable.pic1);  
        mDatas.add(R.drawable.pic1);  
        mDatas.add(R.drawable.pic1);  
        mDatas.add(R.drawable.pic1);  
        mDatas.add(R.drawable.pic1);  
          
    }  
  
      
    }  
=========================================
main.xml布局
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    xmlns:tools="http://schemas.android.com/tools"  
    android:layout_width="match_parent"  
    android:layout_height="match_parent" >  
  
    <GridView  
        android:id="@+id/gv_test"  
        android:numColumns="3"  
        android:layout_width="match_parent"  
        android:layout_height="match_parent" />  
  
</RelativeLayout>  
=============================================
grid_item布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:layout_width="match_parent"  
    android:layout_height="match_parent"  
    android:orientation="vertical" >  
  
    <ImageView  
        android:id="@+id/item"  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content" />  

阅读全文
0 0
原创粉丝点击