两者用法差不多,所以放在一起
--------------------------------------------------------------------------
更好更全的GridView介绍http://blog.youkuaiyun.com/zhangdongxuan/article/details/46924211
---------------------------------------------------------------------------------------------------------------
一、GrideView介绍
1、activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<GridView
android:id="@+id/grid_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:numColumns="3"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"/>
</LinearLayout>
GridView的方法注解说明:
2、item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="120dp"
android:layout_height="120dp"
android:paddingTop="20dp">
<ImageView
android:id="@+id/image_view"
android:layout_width="70dp"
android:layout_height="70dp"
android:scaleType="centerCrop"
android:layout_gravity="center_horizontal"/>
<TextView
android:id="@+id/text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"/>
</LinearLayout>
3、ActivityMain
public class MainActivity extends AppCompatActivity implements AdapterView.OnItemClickListener{
GridView gridView;
Map<String,Object> map;
List<Map<String,Object>> list=new ArrayList<Map<String,Object>>();
//网格中图片的资源地址
int drawable[]=new int[]{R.drawable.ic_menu_call,R.drawable.ic_menu_camera,
R.drawable.ic_menu_cc_am,R.drawable.ic_menu_crop,
R.drawable.ic_menu_delete,R.drawable.ic_menu_gallery,
R.drawable.ic_menu_home,R.drawable.ic_menu_month,
R.drawable.ic_menu_my_calendar};
//网格中文本内容
String text[]=new String[]{"CALL","CAMERA","AM","CROP","DELETE","GALLERY","HOME","MONTH",
"CALENDAR1"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gridView=(GridView) findViewById(R.id.grid_view);
//SimpleAdapter适配器
//String[]必须与下文的map中的key值相一致
//int[]必须与item.xml中的ImageView和TextView的id一致
SimpleAdapter adapter=new SimpleAdapter(MainActivity.this,getView(),R.layout.test,
new String[]{"imageview","textview1"},new int[]{R.id.image_view,R.id.text_view});
gridView.setAdapter(adapter);
gridView.setOnItemClickListener(this);
}
public List getView(){
for (int i=0;i<drawable.length;i++){
map=new HashMap<String, Object>(); //必须每个创建一个map,否则所有网格内容一样
map.put("imageview",drawable[i]);
map.put("textview1",text[i]);
list.add(map);
}
return list;
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(MainActivity.this,id+text[position],Toast.LENGTH_SHORT).show();
}
}
二、Spinner介绍
1、activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<Spinner
android:id="@+id/spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:verticalScrollbarPosition="right"
android:dropDownVerticalOffset="25dp"/>
</LinearLayout>
常用属性:
<!--对话框标题:dialog上的title-->
android:prompt="@string/title"/>
<!--下拉形式:dialog或者dropDown-->
android:spinnerMode="dropDown"
<!--垂直偏移量:如果为dropDown,则为dropDown上下偏移的距离-->
android:dropDownVerticalOffset="25dp"
<!--水平偏移量:如果为dropDown,则为dropDown左右偏移的距离-->
android:dropDownVerticalOffset="25dp"
2、spinner_item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/image_view11"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="centerCrop"
android:layout_gravity="center_horizontal"/>
<TextView
android:id="@+id/text_view11"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"/>
</LinearLayout>
3、ActivityMain
public class MainActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener{
Spinner spinner;
Map<String,Object> map;
List<Map<String,Object>> list=new ArrayList<Map<String,Object>>();
//网格中图片的资源地址
int drawable[]=new int[]{R.drawable.ic_menu_call,R.drawable.ic_menu_camera,
R.drawable.ic_menu_cc_am,R.drawable.ic_menu_crop,
R.drawable.ic_menu_delete,R.drawable.ic_menu_gallery,
R.drawable.ic_menu_home,R.drawable.ic_menu_month,
R.drawable.ic_menu_my_calendar};
//网格中文本内容
String text[]=new String[]{"CALL","CAMERA","AM","CROP","DELETE","GALLERY","HOME","MONTH",
"CALENDAR1"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
spinner= (Spinner) findViewById(R.id.spinner);
//方法一:适用于有图片
//SimpleAdapter适配器
//String[]必须与下文的map中的key值相一致
//int[]必须与item.xml中的ImageView和TextView的id一致
SimpleAdapter adapter1=new SimpleAdapter(this,getView(),R.layout.spinner_item,
new String[]{"imageview","textview1"},new int[]{R.id.image_view11,R.id.text_view11});
//方法二:适用于没有图片
/*List<String> list1=new ArrayList<String>();
for (int i=0;i<text.length;i++){
list1.add(text[i]);
}
ArrayAdapter adapter=new ArrayAdapter(this,R.layout.support_simple_spinner_dropdown_item,list1);*/
spinner.setAdapter(adapter1);
spinner.setOnItemSelectedListener(this);
}
public List getView(){
for (int i=0;i<drawable.length;i++){
map=new HashMap<String, Object>(); //必须每个创建一个map,否则所有网格内容一样
map.put("imageview",drawable[i]);
map.put("textview1",text[i]);
list.add(map);
}
return list;
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String title=((Map)spinner.getItemAtPosition(position)).get("textview1").toString();//方法一的
//String title=(spinner.getItemAtPosition(position)).toString(); //方法二的
Toast.makeText(this,title,Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
}