Android中GridView和ArrayAdapter用法实例分析
作者:马到成功 发布时间:2021-06-24 05:12:34
标签:Android,GridView,ArrayAdapter
本文实例分析了Android中GridView和ArrayAdapter用法。分享给大家供大家参考,具体如下:
GridView是一个表格化的二维排版的View,当GridView的文字放不下时会出现scrolling的效果,GridView中的元素命名为Item,要将Item放入GridView,需要ArrayAdapter对象。
例子如下:
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.GridView;
import android.widget.TextView;
public class A06Activity extends Activity {
private TextView tv;
//两个按钮是动态放入GridView的开关,b01是设置GridView为两列格式,并放入4
//个item,b02设置为三列格式,并放入9个Item
private Button b01,b02;//
private GridView gv;
private String[] s1,s2;
private ArrayAdapter<String> aa;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv=(TextView)findViewById(R.id.tv);
b01=(Button)findViewById(R.id.button01);
b02=(Button)findViewById(R.id.button02);
gv=(GridView)findViewById(R.id.gv);
s1=new String[]{
getResources().getString(R.string.str_list01),
getResources().getString(R.string.str_list02),
getResources().getString(R.string.str_list03),
getResources().getString(R.string.str_list04)
};
s2=new String[]{
getResources().getString(R.string.str_list01),
getResources().getString(R.string.str_list02),
getResources().getString(R.string.str_list03),
getResources().getString(R.string.str_list04),
getResources().getString(R.string.str_list01),
getResources().getString(R.string.str_list02),
getResources().getString(R.string.str_list03),
getResources().getString(R.string.str_list04),
getResources().getString(R.string.str_list04)
};
b01.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
gv.setNumColumns(2);
aa=new ArrayAdapter<String>(A06Activity.this,R.layout.list_item_l_small,s1);
gv.setAdapter(aa);
gv.setSelection(2);
gv.refreshDrawableState();
}
});
b02.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
gv.setNumColumns(2);
aa=new ArrayAdapter<String>(A06Activity.this,R.layout.list_item_l_small,s2);
gv.setAdapter(aa);
}
});
//利用GridView的OnClickListener()方法用来捕捉用户单击的是哪个item
gv.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// 判断Adapter中元素的个数,判断被单击的是第几个元素的名称
switch(aa.getCount()){
case 4:
tv.setText(s1[arg2]);
break;
case 9:
tv.setText(s2[arg2]);
break;
}
}
});
}
}
res/layout/main.xml如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/tv"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
<Button
android:id="@+id/button01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<Button
android:id="@+id/button02"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<GridView
android:id="@+id/gv"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
></GridView>
</LinearLayout>
res/layout/list_item_l_small的作用是配置ArrayAdapter的第二个参数textViewResourceId,参数必须为TextView进行配置。若需要更改放入item的文字模式,可以通过这个来设置文字的大小、模式的属性设置,而一旦放入ArrayAdapter,这个配置会立即生效。也可以设置许多的layout xml,提供给不同的GridView使用,让每一个GridView都有不同的风貌。
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/myCheckedTextView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textColor="@drawable/blue"
android:textSize="12dp"
android:textAppearance="@android:attr/textAppearanceLarge"
android:gravity="center_vertical"
android:paddingLeft="6dip"
android:minHeight="@android:attr/listPreferredItemHeight"
/>
希望本文所述对大家Android程序设计有所帮助。


猜你喜欢
- 大多数网站会设置用户权限,如过滤非法用户,用户不登录时不能进行访问,或者设置访问的权限,如部分内容仅对VIP开放等等,这些权限的控制都可以用
- 本文所述为一个Android上传文件的源代码,每一步实现过程都备有详尽的注释,思路比较清楚,学习了本例所述上传文件代码之后,你可以应对其它格
- C# 中同样支持多维数组(也可称为矩形数组),它可以是二维的,也可以是三维的,多维数组中的数据以类似表格(行、列)的形式存储,因此也被称为矩
- 本文实例为大家分享了Android QQ运动步数的具体代码,供大家参考,具体内容如下今天我们实现下面这样的效果:首先自定义属性:<?x
- 这篇文章主要介绍了Jenkins Host key verification failed问题解决,文中通过示例代码介绍的非常详细,对大家的
- Android 应用冷启动时,需要从Application开始启动,加载时间就会比较长,这段时间里,用户所能看到的就是”白屏“(这是因为默认
- 问题(1)重入锁是什么?(2)ReentrantLock如何实现重入锁?(3)ReentrantLock为什么默认是非公平模式?(4)Ree
- 最近有小伙伴告诉我,在循环的判断条件只会计算一次,本金鱼不相信,于是就做了测试,本文记录我做的测试。先来写一个简单的代码, 就一个循环,循环
- 开发android的时候,尽管手机已经root但是DDMS中还是没有data/data路径怎么办?可以用cmd命令提示符为逐个文件夹设置权限
- Filter过滤器中访问getSession()要进行转化public void doFilter(ServletRequest reque
- [LeetCode] 144. Binary Tree Preorder Traversal 二叉树的先序遍历Given a binary
- Java File类 mkdir 不能创建多层目录File f = new File("/home/jp/Upload"
- 为此Android在appcompat-v7库中提供了一个NotificationCompat类来处理新老版本的兼容问题,我们在编写通知功能
- 本文实例为大家分享了Unity实现俄罗斯方块的具体代码,供大家参考,具体内容如下一、使用SpriteRenderer作为小方块图片,创建7种
- 前言这两天面试了一个物联网公司高级研发,面试题是下面这样子公司领导,部门主管,小组组长,组成员4级,假如有个 疫情预警,先通知组人员(对个人
- 最近项目中需要用到IO流来读取图片以提供前台页面展示,由于以前一直是用url路径的方式进行图片展示,一听说要项目要用IO流读取图片感觉好复杂
- Java读取properties文件中文乱码初用properties,读取java properties文件的时候如果value是中文,会出
- 一 应用规划: ※ 确定功能。 ※ 必须的界面及界面跳转的流程。
- 今天遇到一个需求对上传的图铺满水印,在网上找了半天都是在指定位置设置水印,下面代码是我通过在网上找的代码,然后改造而成的。我们先看一下效果图
- Spring Cloud Gateway 默认的filter功能和执行顺序有效性Spring Cloud Gateway 2.0.0.REL