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
PackageCom.pingyijinren.helloworld.model;/*** Created by Administrator on 2016/6/3 0003.*/ Public classArticle {Private intimageId; PrivateString name; PublicArticle (intimageid,string name) { This. imageid=imageId; This. name=name; } Public intGetimageid () {returnimageId; } PublicString GetName () {returnname; }}
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
PackageCom.pingyijinren.helloworld.adapter;ImportAndroid.content.Context;Importandroid.text.Layout;ImportAndroid.view.LayoutInflater;ImportAndroid.view.View;ImportAndroid.view.ViewGroup;ImportAndroid.widget.ArrayAdapter;ImportAndroid.widget.ImageView;ImportAndroid.widget.TextView;ImportCOM.PINGYIJINREN.HELLOWORLD.R;Importcom.pingyijinren.helloworld.model.Article;Importjava.util.ArrayList;Importjava.util.List;/*** Created by Administrator on 2016/6/3 0003.*/ Public classArticleadapterextendsArrayadapter<article>{ PrivateArraylist<article>arraylistarticle; PublicArticleadapter (Context context,intResource, list<article>objects) { Super(Context, resource, objects); Arraylistarticle= (arraylist<article>) objects; } @Override PublicView GetView (intposition, View Convertview, ViewGroup parent) {Viewholder viewholder; if(convertview==NULL) {Convertview= Layoutinflater.from (GetContext ()). Inflate (R.layout.grid_item,NULL); Viewholder=NewViewholder (); 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 (""); } returnConvertview; } Private classviewholder{ PublicImageView image; PublicTextView name; } @Override Public intGetCount () {returnArraylistarticle.size (+1); }} PackageCom.pingyijinren.helloworld.adapter;ImportAndroid.content.Context;Importandroid.text.Layout;ImportAndroid.view.LayoutInflater;ImportAndroid.view.View;ImportAndroid.view.ViewGroup;ImportAndroid.widget.ArrayAdapter;ImportAndroid.widget.ImageView;ImportAndroid.widget.TextView;ImportCOM.PINGYIJINREN.HELLOWORLD.R;Importcom.pingyijinren.helloworld.model.Article;Importjava.util.ArrayList;Importjava.util.List;/*** Created by Administrator on 2016/6/3 0003.*/ Public classArticleadapterextendsArrayadapter<article>{ PrivateArraylist<article>arraylistarticle; PublicArticleadapter (Context context,intResource, list<article>objects) { Super(Context, resource, objects); Arraylistarticle= (arraylist<article>) objects; } @Override PublicView GetView (intposition, View Convertview, ViewGroup parent) {Viewholder viewholder; if(convertview==NULL) {Convertview= Layoutinflater.from (GetContext ()). Inflate (R.layout.grid_item,NULL); Viewholder=NewViewholder (); 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 (""); } returnConvertview; } Private classviewholder{ PublicImageView image; PublicTextView name; } @Override Public intGetCount () {returnArraylistarticle.size (+1); }}
Mainactivity.java
Packagecom.pingyijinren.helloworld.activity;Importandroid.support.v7.app.AppCompatActivity;ImportAndroid.os.Bundle;ImportAndroid.view.View;ImportAndroid.widget.AdapterView;ImportAndroid.widget.GridView;ImportCOM.PINGYIJINREN.HELLOWORLD.R;ImportCom.pingyijinren.helloworld.adapter.ArticleAdapter;Importcom.pingyijinren.helloworld.model.Article;Importjava.util.ArrayList; Public classMainactivityextendsappcompatactivity {PrivateGridView GridView; PrivateArraylist<article>arraylistarticle; PrivateArticleadapter Articleadapter; @Overrideprotected voidonCreate (Bundle savedinstancestate) {Super. OnCreate (savedinstancestate); Setcontentview (R.layout.activity_main); GridView=(GridView) Findviewbyid (R.id.gridview); Arraylistarticle=NewArraylist<article>(); Arraylistarticle.add (NewArticle (R.drawable.first_image, "Frist")); Arraylistarticle.add (NewArticle (R.drawable.second_image, "second")); Articleadapter=NewArticleadapter (mainactivity. This, r.layout.grid_item,arraylistarticle); Gridview.setadapter (Articleadapter); Gridview.setonitemclicklistener (NewAdapterview.onitemclicklistener () {@Override Public voidOnitemclick (adapterview<?> Parent, view view,intPositionLongID) {if(position==arraylistarticle.size ()) {Arraylistarticle.add (NewArticle (R.drawable.third_image, "third")); Articleadapter.notifydatasetchanged (); } } }); }}
GridView Dynamic Add view