GridView控件实现菜单

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"> <GridView
android:id="@+id/grid_view_menu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numColumns="3"></GridView>
</LinearLayout>

gridview_index.xml

<?xml version="1.0" encoding="utf-8"?>
<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:layout_width="50dp"
android:layout_height="50dp"
android:src="@mipmap/ic_launcher" /> <TextView
android:id="@+id/tv_menu"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="菜单" />
</LinearLayout>

item_grid.xml

先使用SimpleAdapter填充数据

package com.ouc.wkp.ui1;

import android.app.Activity;
import android.os.Bundle;
import android.widget.GridView;
import android.widget.SimpleAdapter; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; /**
* Created by wkp on 2016/8/23.
*/
public class JustLook5 extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.gridview_index); GridView gridViewMenu=(GridView)findViewById(R.id.grid_view_menu); List<Map<String,String>> dataList=new ArrayList<>(); {
Map<String, String> map = new HashMap<>();
map.put("menu_name", "拉拉拉");
dataList.add(map);
} {
Map<String, String> map = new HashMap<>();
map.put("menu_name", "嘿嘿嘿");
dataList.add(map);
} {
Map<String, String> map = new HashMap<>();
map.put("menu_name", "劈劈劈");
dataList.add(map);
} {
Map<String, String> map = new HashMap<>();
map.put("menu_name", "啪啪啪");
dataList.add(map);
} {
Map<String, String> map = new HashMap<>();
map.put("menu_name", "biubiubiu");
dataList.add(map);
} String[] from={"menu_name"};
int[] to={R.id.tv_menu}; SimpleAdapter simpleAdapter=new SimpleAdapter(this,dataList,R.layout.item_grid,from,to);
gridViewMenu.setAdapter(simpleAdapter);
}
}

JustLook5.java

再使用BaseAdapter填充数据

package com.ouc.wkp.ui1;

import android.app.Activity;
import android.media.Image;
import android.os.Bundle;
import android.view.LayoutInflater;;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.SimpleAdapter;
import android.widget.TextView; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; /**
* Created by wkp on 2016/8/23.
*/
public class JustLook5 extends Activity { List<MenuItem2> dataList; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.gridview_index); GridView gridViewMenu = (GridView) findViewById(R.id.grid_view_menu); dataList = new ArrayList<>(); dataList.add(new MenuItem2("菜单1", R.drawable.menu1));
dataList.add(new MenuItem2("菜单2", R.drawable.menu2));
dataList.add(new MenuItem2("菜单3", R.drawable.menu3));
dataList.add(new MenuItem2("菜单4", R.drawable.menu4));
dataList.add(new MenuItem2("菜单5", R.drawable.menu5)); MenuAdapter menuAdapter = new MenuAdapter();
gridViewMenu.setAdapter(menuAdapter); // {
// Map<String, String> map = new HashMap<>();
// map.put("menu_name", "拉拉拉");
// dataList.add(map);
// }
//
// {
// Map<String, String> map = new HashMap<>();
// map.put("menu_name", "嘿嘿嘿");
// dataList.add(map);
// }
//
// String[] from={"menu_name"};
// int[] to={R.id.tv_menu};
//
// SimpleAdapter simpleAdapter=new SimpleAdapter(this,dataList,R.layout.item_grid,from,to);
// gridViewMenu.setAdapter(simpleAdapter);
} class MenuAdapter extends BaseAdapter { @Override
public int getCount() {
return dataList.size();
} @Override
public Object getItem(int i) {
return dataList.get(i);
} @Override
public long getItemId(int i) {
return i;
} @Override
public View getView(int i, View view, ViewGroup viewGroup) { View menuView = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_grid, null); TextView tvMenuName = (TextView) menuView.findViewById(R.id.tv_menu);
tvMenuName.setText(dataList.get(i).menuName); ImageView imageViewMenu = (ImageView) menuView.findViewById(R.id.image_menu);
imageViewMenu.setImageResource(dataList.get(i).menuDrawableId); return menuView;
}
} class MenuItem2 {
String menuName;
int menuDrawableId; MenuItem2(String menuName, int menuDrawableId) {
this.menuName = menuName;
this.menuDrawableId = menuDrawableId;
}
}
}

JustLook.java

效果如下

android入门——UI(4)的更多相关文章

  1. Android入门——UI(8)——Fragment(2)

    先演示一下如何在一个activity中放置两个Fragment,先定义两个Fragment <?xml version="1.0" encoding="utf-8& ...

  2. Android入门——UI(9)

    SwipRefreshLayout下拉刷新控件 <?xml version="1.0" encoding="utf-8"?> <android ...

  3. Android入门——UI(7)——Fragment

    先上fragment静态加载的代码 <?xml version="1.0" encoding="utf-8"?> <LinearLayout ...

  4. android入门——UI(6)——ViewPager+Menu+PopupWindow

    一.使用ViewPager开发新特性引导界面 <?xml version="1.0" encoding="utf-8"?> <Relative ...

  5. android入门——UI(5)

    最近时间实在匆忙,博客的代码基本没有解释. 介绍ExpandableListView <?xml version="1.0" encoding="utf-8&quo ...

  6. android入门——UI(3)

    Spinner控件   ListView控件 一.Spinner控件 点击Spinner会弹出一个包含所有可选值的dropdown菜单,从该菜单中可以为Spinner选择一个新值. 有两种指定数据源的 ...

  7. Android入门——UI(2)

    介绍SeekBar拖动条控件.ProgressBar进度条控件.DatePicker日历控件.TimePicker时间控件 <?xml version="1.0" encod ...

  8. android入门——UI(1)

    一.使用TextView ImageView Button EditView做出登录页面 <?xml version="1.0" encoding="utf-8&q ...

  9. 【详细】Android入门到放弃篇-YES OR NO-》各种UI组件,布局管理器,单元Activity

    问:达叔,你放弃了吗? 答:不,放弃是不可能的,丢了Android,你会心疼吗?如果别人把你丢掉,你是痛苦呢?还是痛苦呢?~ 引导语 有人说,爱上一个人是痛苦的,有人说,喜欢一个人是幸福的. 人与人之 ...

随机推荐

  1. Mirantis Fuel fundations

    Mirantis Nailgun is the most important service a RESTful application written in Python that contains ...

  2. AjaxPro.dll,asp.net 前台js调用后台方法(无刷新)

    1.什么是Ajax Ajax是异步Javascript和XML(Asynchronous JavaScript and XML)的英文缩写."Ajax"这个名词的发明人是Jesse ...

  3. VS2015 开发人员命令提示,如何实现记事本编程

    开始,选择VS2015 开发人员命令提示,打开 找到.c文件的位置,复制位置 在VS2015 开发人员命令提示, 输入cd 位置 回车 然后输入cl 文件名 回车 这样进行编译

  4. iOS多线程GCD(转)

    原文:http://www.cnblogs.com/pure/archive/2013/03/31/2977420.html Grand Central Dispatch (GCD)是Apple开发的 ...

  5. POJ 2029 DP || 暴力

    在大矩形中找一个小矩形 使小矩形包括的*最多 暴力或者DP  水题 暴力: #include "stdio.h" #include "string.h" int ...

  6. [Oracle] - 性能优化工具(3) - ADDM

    ADDM 通过检查和分析AWR获取的数据来推断Oracle数据库中可能的问题.并给出优化建议. 获取ADDM的方法例如以下: @?/rdbms/admin/addmrpt.sql 以下能够看一个样例: ...

  7. 得到文件的MD5值

    /// <summary> /// 得到文件的MD5值 /// </summary> /// <param name="Path">文件路径&l ...

  8. [Android]Plug-in com.android.ide.eclipse.adt was unable to load class com.android.ide

    今天启动eclipse的时候报了上述错误,打开xml是都报错.其实解决方法很简单:重启eclipse即可.

  9. shell 比较

    整数比较 -eq 等于,如:if [ "$a" -eq "$b" ] -ne 不等于,如:if [ "$a" -ne "$b&qu ...

  10. 【iOS技术】Xcode+GitHub远程代码托管(GIT, SVN)

    原创 2016-05-24 旭哥 蓝鸥 学生对旭哥的评价是这样的: 旭哥 为什么这么年轻 知识却比我们多这么多............ 旭哥很是负责,对同学的各种问题都能够热心地解答,在旭哥的带领下, ...