今天写实验作业的时候遇到了SimpleAdapter的问题,发现自己理解上有一些偏差,所以写一篇Blog来记录一下。先贴上代码。
MainActivity.java
packagecom.example.vincelee.interfacedemo;
importandroid.content.Context;
importandroid.support.v7.app.AppCompatActivity;
importandroid.os.Bundle;
importandroid.widget.BaseAdapter;
importandroid.widget.Gallery;
importandroid.widget.ImageSwitcher;
importandroid.widget.SimpleAdapter;
importjava.util.ArrayList;
importjava.util.HashMap;
importjava.util.List;
importjava.util.Map;
public classMainActivityextendsAppCompatActivity {
//声明ImageSwitcher与图片数组
privateImageSwitcherimgs;
privateString[]name={"ONE","TWO","THREE"};
private int[]pic={
R.drawable.drawable_1,
R.drawable.drawable_2,
R.drawable.drawable_3
};
@Override
protected voidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
List> list =newArrayList>();
for(inti =0;i
Map galleryitem =newHashMap();
galleryitem.put("img",pic[i]);
galleryitem.put("Title",name[i]);
list.add(galleryitem);
}
//获取ImageSwitcher对象和Gallery对象
imgs= (ImageSwitcher)findViewById(R.id.switcher);
Gallery ga = (Gallery)findViewById(R.id.gallery);
//设置Adapter
SimpleAdapter sad =newSimpleAdapter(this,list,R.layout.galleryitemoverride,newString[]{"img","Title"},new int[]{R.id.img,R.id.Title});
ga.setAdapter(sad);
}
}
galleryitemoverride.xml
android:orientation="vertical"android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/img"/>
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/Title"/>
activity_main
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.vincelee.interfacedemo.MainActivity"> <ImageSwitcher
android:id="@+id/switcher"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true" >
</ImageSwitcher>
<Gallery
android:id="@+id/gallery"
android:layout_height="wrap_content"
android:layout_width="wrap_content" android:spacing="@dimen/activity_horizontal_margin" android:animationDuration="100"
android:unselectedAlpha="0.6"/>
</RelativeLayout>

学习以后的理解是:
第一个参数是context;第二个参数是一个Map的List,第三个参数是布局资源的ID,第四个是我put到Map里的列名;第五个是在布局文件中列名对应的视图id。

Android官方对SimpleAdapter的参数解释
网友评论