activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:orientation="vertical"
tools:context=".activity.MainActivity">
<GridView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/gridView"
android:numColumns="4"></GridView>
</LinearLayout>

Article.java

package com.pingyijinren.helloworld.model;

/**
* Created by Administrator on 2016/6/3 0003.
*/
public class Article {
private int imageId;
private String name; public Article(int imageId,String name){
this.imageId=imageId;
this.name=name;
} public int getImageId() {
return imageId;
} public String getName() {
return name;
}
}

grid_item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"> <ImageView
android:layout_width="match_parent"
android:layout_height="50dp"
android:id="@+id/image"/> <TextView
android:layout_width="match_parent"
android:layout_height="20dp"
android:id="@+id/name"
android:gravity="center"/>
</LinearLayout>

ArticleAdapter.java

package com.pingyijinren.helloworld.adapter;

import android.content.Context;
import android.text.Layout;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView; import com.pingyijinren.helloworld.R;
import com.pingyijinren.helloworld.model.Article; import java.util.ArrayList;
import java.util.List; /**
* Created by Administrator on 2016/6/3 0003.
*/
public class ArticleAdapter extends ArrayAdapter<Article>{
private ArrayList<Article> arrayListArticle;
public ArticleAdapter(Context context, int resource, List<Article> objects) {
super(context, resource, objects);
arrayListArticle=(ArrayList<Article>) objects;
} @Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
if(convertView==null){
convertView= LayoutInflater.from(getContext()).inflate(R.layout.grid_item,null);
viewHolder=new ViewHolder();
viewHolder.image=(ImageView) convertView.findViewById(R.id.image);
viewHolder.name=(TextView)convertView.findViewById(R.id.name);
convertView.setTag(viewHolder);
}
else{
viewHolder=(ViewHolder) convertView.getTag();
} if(position<arrayListArticle.size()){
Article article=getItem(position);
viewHolder.image.setImageResource(article.getImageId());
viewHolder.name.setText(article.getName());
}
else{
viewHolder.image.setImageResource(R.drawable.plus);
viewHolder.name.setText("");
} return convertView;
} private class ViewHolder{
public ImageView image;
public TextView name;
} @Override
public int getCount() {
return arrayListArticle.size()+1;
}
}
package com.pingyijinren.helloworld.adapter; import android.content.Context;
import android.text.Layout;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView; import com.pingyijinren.helloworld.R;
import com.pingyijinren.helloworld.model.Article; import java.util.ArrayList;
import java.util.List; /**
* Created by Administrator on 2016/6/3 0003.
*/
public class ArticleAdapter extends ArrayAdapter<Article>{
private ArrayList<Article> arrayListArticle;
public ArticleAdapter(Context context, int resource, List<Article> objects) {
super(context, resource, objects);
arrayListArticle=(ArrayList<Article>) objects;
} @Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
if(convertView==null){
convertView= LayoutInflater.from(getContext()).inflate(R.layout.grid_item,null);
viewHolder=new ViewHolder();
viewHolder.image=(ImageView) convertView.findViewById(R.id.image);
viewHolder.name=(TextView)convertView.findViewById(R.id.name);
convertView.setTag(viewHolder);
}
else{
viewHolder=(ViewHolder) convertView.getTag();
} if(position<arrayListArticle.size()){
Article article=getItem(position);
viewHolder.image.setImageResource(article.getImageId());
viewHolder.name.setText(article.getName());
}
else{
viewHolder.image.setImageResource(R.drawable.plus);
viewHolder.name.setText("");
} return convertView;
} private class ViewHolder{
public ImageView image;
public TextView name;
} @Override
public int getCount() {
return arrayListArticle.size()+1;
}
}

MainActivity.java

package com.pingyijinren.helloworld.activity;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.GridView; import com.pingyijinren.helloworld.R;
import com.pingyijinren.helloworld.adapter.ArticleAdapter;
import com.pingyijinren.helloworld.model.Article; import java.util.ArrayList; public class MainActivity extends AppCompatActivity {
private GridView gridView;
private ArrayList<Article> arrayListArticle;
private ArticleAdapter articleAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); gridView=(GridView)findViewById(R.id.gridView);
arrayListArticle=new ArrayList<Article>();
arrayListArticle.add(new Article(R.drawable.first_image,"frist"));
arrayListArticle.add(new Article(R.drawable.second_image,"second"));
articleAdapter=new ArticleAdapter(MainActivity.this,R.layout.grid_item,arrayListArticle);
gridView.setAdapter(articleAdapter); gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if(position==arrayListArticle.size()){
arrayListArticle.add(new Article(R.drawable.third_image,"third"));
articleAdapter.notifyDataSetChanged();
}
}
});
}
}

最新文章

  1. 使用tmpfs作为缓存加速缓存的文件目录
  2. flyby function
  3. MSSQL-实用小工具
  4. request的各种方法大全
  5. Eclipse IDE for C/C++ Developers安装配置详解
  6. 全球2/3的DNS瘫痪 顶级域名根服务器故障
  7. selenium如何操作cookies实现免登录
  8. java.net.SocketException: Too many open files
  9. 傅里叶变换 fft_generic halcon
  10. vagrant
  11. Linux创建公钥
  12. Markdown基础语法
  13. 【转】在写一个iOS应用之前必须做的7件事(附相关资源)
  14. iframe顶部跳转跨域问题
  15. 编译安装mysql-server5.6.32手记
  16. java aes CBC的填充方式发现
  17. scrapy pipelines导出各种格式
  18. Vue-admin工作整理(十三):Vuex-严格模式
  19. React-redux深入理解
  20. base64URL处理

热门文章

  1. iview 验证 trigger: &#39;blur,change&#39;, 同时加两个,省的每次还想input 还是 select
  2. currentStyle和getComputedStyle来获取外部样式
  3. Linux命令基础操作--vim 归档 压缩 分区 格式化 挂载 Innode
  4. 二分查找 &amp;&amp; 三分查找
  5. Linux文件系统概述二
  6. java面试宝典第三弹
  7. hihoCoder-1093-SPFA
  8. 【实用工具】Teleport Pro爬取整个网站镜像到本地
  9. web开发框架之Django基础
  10. Handler处理器和自定义Opener