Android学习一点一点进步!

  • 设置布局
  • 设置子项布局
  • 定义BaseAdapter
  • 设置MainActivity

先写个主框架

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="horizontal"><GridViewandroid:id="@+id/lv"android:layout_width="wrap_content"android:layout_height="wrap_content"></GridView>
</LinearLayout>

再来个模板

<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center_vertical">
<ImageViewandroid:id="@+id/item_image"android:layout_width="48dp"android:layout_height="48dp"android:layout_margin="8dp"android:background="@drawable/jd"/><TextViewandroid:id="@+id/item_tv"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="京东商城"android:textSize="20sp" />
</LinearLayout>

设置Mainactivity

public class MainActivity extends Activity {private GridView mGridView;private String[] names={"京东商城","QQ","QQ斗地主","新浪微博","天猫","UC浏览器","微信"};private int[] icons={R.drawable.jd,R.drawable.qq,R.drawable.dz,R.drawable.xl,R.drawable.tm,R.drawable.uc,R.drawable.wx};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.listview);mGridView=(GridView)findViewById(R.id.lv);MyBaseAdapter mAdapter=new MyBaseAdapter();mGridView.setAdapter(mAdapter);mGridView.setNumColumns(3);}class MyBaseAdapter extends BaseAdapter{@Overridepublic int getCount() {return names.length;}@Overridepublic Object getItem(int position) {return names[position];}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {ViewHolder holder;if (convertView == null) {convertView = LayoutInflater.from(getApplicationContext()).inflate(R.layout.activity_main,null);holder=new ViewHolder();holder.mTexTView=convertView.findViewById(R.id.item_tv);holder.imageView=convertView.findViewById(R.id.item_image);convertView.setTag(holder);}else {holder=(ViewHolder) convertView.getTag();}holder.mTexTView.setText(names[position]);holder.imageView.setBackgroundResource(icons[position]);return convertView;}class ViewHolder{TextView mTexTView;ImageView imageView;}}
}

就是这样,虽然很丑

Android——利用BaseAdapter实现GridView相关推荐

  1. android用户界面之GridView教程实例汇总

    一.GridView基础知识 1.在GridView上显示SD卡上的所有图片  http://www.apkbus.com/android-51436-1-1.html  2.网格(GridView) ...

  2. Android UI Button 和GridView 的设计--优化(2)

    Android 按钮的UI设计,ListView 以及GridView的UI设计 一.按钮的状态 我们一般搞UI设计,按钮通常有三个状态:normal(正常状态);focus(焦点状态),presse ...

  3. [Android1.6]继承BaseAdapter为GridView设置数据时设置setLayoutParams时注意

    一.问题代码     public View getView(int position, View convertView, ViewGroup parent) {         if (conve ...

  4. Android之BaseAdapter—convertView回收机制与动态控件响应

    前言:对于listView的BaseAdapter的派生,难度比较大.最难理解的莫过于getView(int position, View convertView, ViewGroup parent) ...

  5. Android利用Filter过滤数据

    MainActivity如下: package cc.testfilterable;import java.util.ArrayList; import java.util.HashMap; impo ...

  6. android中自适应布局教程,Android实现自适应正方形GridView

    现在在Android应用中,GridView中每个Item都是正方形的场景越来越常见.比如 陌陌 的搜索结果界面 陌陌的搜索界面显示 Android手机和IPhone不同, IPhone硬件是苹果自己 ...

  7. Java泛型应用之打造Android中ListView和GridView万能适配器【CommonAdapter】--超简洁写法

    转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/52813227 [DylanAndroid的csdn博客] 在android中使 ...

  8. Android利用universal-image-loader异步加载大量图片完整示例

    MainActivity如下: package cc.testlistview; import java.util.ArrayList; import com.example.testlistview ...

  9. android通用listview和gridview万能适配器实现的两种方式

    Listview和gridview是超级常用组件,于是乎,应该封装一下直接拿来用用而不是每次都写Adapter,这样多么的麻烦是不.虽然国内外大牛都有封装过,但是我总结了两个封装好的Adapter分享 ...

最新文章

  1. Linux命令之乐--nmap
  2. Python3 PyQt5 PyCharm 环境搭建
  3. 物理隔离已是过去 工控网络如何更好地保护SCADA
  4. 采购杀毒软件,你说话能算数么?
  5. asp连接oracle6,asp下用OracleInProcServer完成对Oracle的连接和操作-ASP教程,数据库相关...
  6. python 之 functools模块
  7. 图书管理系统(一):出版社列表增加、删除和编辑
  8. 从根儿上解决Word中标题多级标题编号不联动问题
  9. 华为access、trunk、hybird接口从tag和untag进行了解。
  10. 第二十期 U-Boot添加web failsafe功能《路由器就是开发板》
  11. 今有物不知其数三三数之JAVA_今有物不知其数,三三数之剩二,五五数之剩三,七七数...
  12. 终于找到了!AI学习路线图——从零基础到就业
  13. matlab 理论力学,MATLAB理论力学/高等学校教材
  14. 利用js脚本自动删除微博
  15. 【Zynq UltraScale+ MPSoC解密学习1】Zynq UltraScale+的基本介绍
  16. 做业务的程序猿如何提升技能?
  17. 通过贝叶斯非参数模型探索在物流风险评估中的大数据
  18. 在网页上嵌入微博--微博秀
  19. Matlab篇----常用的回归分析Matlab命令(regress篇)
  20. 大牛证券:涪陵榨菜Q2单季营收增速创近六年新低

热门文章

  1. vscode配置javaweb
  2. 详解Gitlab Runner注册与过程中遇到的问题
  3. Android 协程使用到原理详解
  4. Oracle批量导入数据(附带脚本)
  5. Android 13 返回导航大变更:返回键彻底废弃 + 可预见型返回手势
  6. 在Ubuntu上装CLPACK,并跑出ELSDc的代码
  7. webpack版本问题 Cannot read property ‘createHash‘ of undefined
  8. 【浙江中控助力焦化企业打造焦炉机车全自动控制管理系统】
  9. 破碎搭建_当一切都破碎了
  10. CET-4 卷王不要命试炼 18 days