博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android入门之GridView(表格控件)
阅读量:6994 次
发布时间:2019-06-27

本文共 5649 字,大约阅读时间需要 18 分钟。

GridView是一个表格控件,可以在每个单元格中显示自定义的View或者字符串。在这里我们要实现一个图标下方有文字的效果。

1、首先我们应自定义布局文件image_text.xml。代码如下:

1 
2
6 7
13
18

2、写一个实体类用来存放单元格里面每个视图的图片资源和文字:

1 public class EachIcon { 2  3     private int imageSrcId; 4     private String iconString; 5      6     public EachIcon(int imageSrcId,String iconString) 7     { 8         super(); 9         this.imageSrcId = imageSrcId;10         this.iconString = iconString;11     }12     public int getImageSrcId()13     {14         return imageSrcId;15     }16     17     public void setImageSrcId(int imageSrcId)18     {19         this.imageSrcId = imageSrcId;20     }21     22     public String getIconString ()23     {24         return iconString;25     }26     27     public void setIconString(String iconString)28     {29         this.iconString = iconString;30     }31 }

3、第三步我们还需要自定义一个适配器,名称为ImageAdapter,代码如下:

1 import java.util.ArrayList; 2 import java.util.List; 3 import android.app.Activity; 4 import android.content.Context; 5 import android.util.Log; 6 import android.view.LayoutInflater; 7 import android.view.View; 8 import android.view.ViewGroup; 9 import android.widget.BaseAdapter;10 import android.widget.ImageView;11 import android.widget.TextView;12 13 public class ImageAdapter extends BaseAdapter {14     private List
eachIconList = new ArrayList();15 private Context context;16 17 public ImageAdapter(Context context)18 {19 super();20 this.context = context;21 22 EachIcon e1 = new EachIcon(R.drawable.a0,"图标1");23 EachIcon e2 = new EachIcon(R.drawable.a1,"图标2");24 EachIcon e3 = new EachIcon(R.drawable.a2,"图标3");25 EachIcon e4 = new EachIcon(R.drawable.a3,"图标4");26 EachIcon e5 = new EachIcon(R.drawable.a4,"图标5");27 EachIcon e6 = new EachIcon(R.drawable.a5,"图标6");28 EachIcon e7 = new EachIcon(R.drawable.a6,"图标7");29 EachIcon e8 = new EachIcon(R.drawable.a7,"图标8");30 EachIcon e9 = new EachIcon(R.drawable.a8,"图标9");31 EachIcon e10 = new EachIcon(R.drawable.a9,"图标10");32 EachIcon e11 = new EachIcon(R.drawable.a10,"图标11");33 EachIcon e12 = new EachIcon(R.drawable.a11,"图标12");34 EachIcon e13 = new EachIcon(R.drawable.a12,"图标13");35 EachIcon e14 = new EachIcon(R.drawable.a13,"图标14");36 EachIcon e15 = new EachIcon(R.drawable.a14,"图标15");37 EachIcon e16 = new EachIcon(R.drawable.a15,"图标16");38 EachIcon e17 = new EachIcon(R.drawable.a16,"图标17");39 40 eachIconList.add(e1);41 eachIconList.add(e2);42 eachIconList.add(e3);43 eachIconList.add(e4);44 eachIconList.add(e5);45 eachIconList.add(e6);46 eachIconList.add(e7);47 eachIconList.add(e8);48 eachIconList.add(e9);49 eachIconList.add(e10);50 eachIconList.add(e11);51 eachIconList.add(e12);52 eachIconList.add(e13);53 eachIconList.add(e14);54 eachIconList.add(e15);55 eachIconList.add(e16);56 eachIconList.add(e17); 57 }58 59 @Override60 public int getCount() {61 // TODO Auto-generated method stub62 return eachIconList.size();63 }64 65 @Override66 public Object getItem(int arg0) {67 // TODO Auto-generated method stub68 return null;69 }70 71 @Override72 public long getItemId(int position) {73 // TODO Auto-generated method stub74 return 0;75 }76 77 @Override78 public View getView(int position, View convertView, ViewGroup parent) {79 // TODO Auto-generated method stub80 Log.v("rub","---------------------------");81 82 LayoutInflater inflater = ((Activity)context).getLayoutInflater();83 View imgss = inflater.inflate(R.layout.image_text,null);84 85 ImageView ivimgss = (ImageView)imgss.findViewById(R.id.imageview);86 TextView tvimgss = (TextView)imgss.findViewById(R.id.textview);87 88 ivimgss.setImageResource(eachIconList.get(position).getImageSrcId());89 tvimgss.setText(eachIconList.get(position).getIconString());90 return imgss;91 }92 }

4、第四步在Activity里面绑定GridView:

1 import android.app.Activity; 2 import android.os.Bundle; 3 import android.util.Log; 4 import android.view.View; 5 import android.widget.AdapterView; 6 import android.widget.AdapterView.OnItemClickListener; 7 import android.widget.GridView; 8 import android.widget.ListAdapter; 9 import android.widget.TextView;10 11 public class MainActivity extends Activity {12 13     @Override14     protected void onCreate(Bundle savedInstanceState) {15         super.onCreate(savedInstanceState);16         setContentView(R.layout.activity_main);17 18         ListAdapter adapter = new ImageAdapter(this);19         GridView gv = (GridView)this.findViewById(R.id.gridview);20         21         gv.setAdapter(adapter);22         gv.setOnItemClickListener(new OnItemClickListener() {23             @Override24             public void onItemClick(AdapterView
arg0, View arg1, int arg2,25 long arg3) {26 // TODO Auto-generated method stub27 Log.v("------------------单击的索引值:", ""+((TextView)arg1.findViewById(R.id.textview))28 .getText().toString()+"索引是:"+arg2);29 }30 });31 }32 }

这样一个自定义的视图加文字描述的GridView(表格控件)就完成了。对了,还有主布局文件:

1 
10 11
19 20

写下来了以备自己忘记。

下载地址:

转载于:https://www.cnblogs.com/Jett/p/3768559.html

你可能感兴趣的文章