http://blog.csdn.net/a_fyf/article/details/51674790

懒得搬,直接搬连接。

运行显示下拉列表,点击可展开,点击子项目会将子项目显示到横线上,并且在TextView中显示选择的城市。

1.activity_main.xml页面添加Spinner控件。

activity_main.xml页面:

[html]  view plain  copy    
  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:tools="http://schemas.android.com/tools"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. tools:context=".MainActivity" >
  6. <TextView
  7. android:id="@+id/tvShow"
  8. android:layout_width="match_parent"
  9. android:layout_height="wrap_content"
  10. android:textSize="20sp" />
  11. <Spinner
  12. android:id="@+id/spDwon"
  13. android:layout_width="match_parent"
  14. android:layout_height="wrap_content"
  15. android:layout_alignParentLeft="true"
  16. android:layout_below="@+id/tvShow"
  17. android:layout_marginTop="36dp" />
  18. </RelativeLayout>
2.MainActivity.java页面进行数据源的定义和适配器的配置。
MainActivity.java页面:
[java]  view plain  copy    
  1. package com.example.downshow;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import android.os.Bundle;
  5. import android.app.Activity;
  6. import android.util.Log;
  7. import android.view.Menu;
  8. import android.view.View;
  9. import android.widget.AdapterView;
  10. import android.widget.ArrayAdapter;
  11. import android.widget.Spinner;
  12. import android.widget.TextView;
  13. import android.widget.AdapterView.OnItemSelectedListener;
  14. public class MainActivity extends Activity implements OnItemSelectedListener{
  15. private TextView tvShow;
  16. private Spinner spDown;
  17. private List<String> list;
  18. private ArrayAdapter<String> adapter;
  19. @Override
  20. protected void onCreate(Bundle savedInstanceState) {
  21. super.onCreate(savedInstanceState);
  22. setContentView(R.layout.activity_main);
  23. tvShow=(TextView) findViewById(R.id.tvShow);
  24. spDown=(Spinner) findViewById(R.id.spDwon);
  25. tvShow.setText("您选择的城市是北京");
  26. /*设置数据源*/
  27. list=new ArrayList<String>();
  28. list.add("北京");
  29. list.add("上海");
  30. list.add("广州");
  31. list.add("深圳");
  32. /*新建适配器*/
  33. adapter=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,list);
  34. /*adapter设置一个下拉列表样式,参数为系统子布局*/
  35. adapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
  36. /*spDown加载适配器*/
  37. spDown.setAdapter(adapter);
  38. /*soDown的监听器*/
  39. spDown.setOnItemSelectedListener(this);
  40. }
  41. @Override
  42. public boolean onCreateOptionsMenu(Menu menu) {
  43. getMenuInflater().inflate(R.menu.main, menu);
  44. return true;
  45. }
  46. @Override
  47. public void onItemSelected(AdapterView<?> parent, View view, int position,
  48. long id) {
  49. String cityName=adapter.getItem(position);   //获取选中的那一项
  50. tvShow.setText("您选择的城市是"+cityName);
  51. }
  52. @Override
  53. public void onNothingSelected(AdapterView<?> arg0) {
  54. }
  55. }
3.运行就可以显示文字的下拉列表了,但是还可以自定义下拉列表样式。
图文列表
目标效果:
      
1.新建item.xml页面作为子布局。
item.xml页面:
[html]  view plain  copy    
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="wrap_content"
  4. android:layout_height="wrap_content"
  5. android:orientation="horizontal" >
  6. <ImageView
  7. android:id="@+id/ivFruit"
  8. android:layout_width="wrap_content"
  9. android:layout_height="wrap_content"
  10. android:src="@drawable/ic_launcher" />
  11. <TextView
  12. android:id="@+id/tvFruit"
  13. android:layout_gravity="center"
  14. android:layout_width="wrap_content"
  15. android:layout_height="wrap_content"
  16. android:text="TextView" />
  17. </LinearLayout>
2.新建一个SecondActivity.java页面和activity_second.xml页面,作为显示图文下拉列表的页面。
activity_second.xml页面:
[html]  view plain  copy    
  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:tools="http://schemas.android.com/tools"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. tools:context=".SecondActivity" >
  6. <TextView
  7. android:id="@+id/tvShow"
  8. android:layout_width="wrap_content"
  9. android:layout_height="wrap_content"
  10. android:text="@string/hello_world" />
  11. <Spinner
  12. android:id="@+id/spDown"
  13. android:layout_width="match_parent"
  14. android:layout_height="wrap_content"
  15. android:layout_alignParentRight="true"
  16. android:layout_below="@+id/textView1"
  17. android:layout_marginTop="35dp" />
  18. </RelativeLayout>
3.SecondActivity.java页面设置适配器添加数据源。
SecondActivity.java页面:
[java]  view plain  copy    
  1. package com.example.downshow;
  2. import java.util.ArrayList;
  3. import java.util.HashMap;
  4. import java.util.List;
  5. import java.util.Map;
  6. import android.os.Bundle;
  7. import android.app.Activity;
  8. import android.view.Menu;
  9. import android.view.View;
  10. import android.widget.AdapterView;
  11. import android.widget.AdapterView.OnItemSelectedListener;
  12. import android.widget.ImageView;
  13. import android.widget.SimpleAdapter;
  14. import android.widget.Spinner;
  15. import android.widget.TextView;
  16. public class SecondActivity extends Activity implements OnItemSelectedListener{
  17. private TextView tvShow;
  18. private Spinner spDown;
  19. private SimpleAdapter adapter;
  20. private List<Map<String, Object>> dataList;
  21. private int[] icon = { R.drawable.apple_pic, R.drawable.banana_pic,
  22. R.drawable.cherry_pic, R.drawable.grape_pic, R.drawable.mango_pic,
  23. R.drawable.orange_pic, R.drawable.pear_pic,
  24. R.drawable.pineapple_pic, R.drawable.strawberry_pic,
  25. R.drawable.watermelon_pic };
  26. private String[] iconName = { "苹果", "香蕉", "樱桃", "葡萄", "芒果", "橘子", "梨",
  27. "菠萝", "草莓", "西瓜" };
  28. @Override
  29. protected void onCreate(Bundle savedInstanceState) {
  30. super.onCreate(savedInstanceState);
  31. setContentView(R.layout.activity_second);
  32. tvShow = (TextView) findViewById(R.id.tvShow);
  33. spDown = (Spinner) findViewById(R.id.spDown);
  34. tvShow.setText("您选择的是苹果");
  35. /*创建数据源*/
  36. dataList = new ArrayList<Map<String, Object>>();
  37. /*创建简单适配器*/
  38. adapter = new SimpleAdapter(this, getData(), R.layout.item,
  39. new String[] { "ivFruit", "tvFruit" }, new int[] { R.id.ivFruit,
  40. R.id.tvFruit });
  41. /*adapter设置一个下拉列表样式,参数为自己定义的子布局*/
  42. adapter.setDropDownViewResource(R.layout.item);
  43. /*spDown加载适配器*/
  44. spDown.setAdapter(adapter);
  45. /*spDown设置监听事件*/
  46. spDown.setOnItemSelectedListener(this);
  47. }
  48. /*设置数据源*/
  49. private List<Map<String, Object>> getData() {
  50. for(int i=0;i<icon.length;i++){      //循环添加图片文字信息
  51. Map<String,Object> map=new HashMap<String, Object>();
  52. map.put("ivFruit", icon[i]);
  53. map.put("tvFruit",iconName[i]);
  54. dataList.add(map);
  55. }
  56. return dataList;
  57. }
  58. @Override
  59. public boolean onCreateOptionsMenu(Menu menu) {
  60. getMenuInflater().inflate(R.menu.second, menu);
  61. return true;
  62. }
  63. @Override
  64. public void onItemSelected(AdapterView<?> parent, View view, int position,
  65. long id) {
  66. tvShow.setText("您选择的是"+adapter.getItem(position));//更改显示信息
  67. }
  68. @Override
  69. public void onNothingSelected(AdapterView<?> arg0) {
  70. // TODO Auto-generated method stub
  71. }
  72. }
4.运行就可以显示图文的目标效果了。

Android下拉列表显示相关推荐

  1. Android下拉列表怎么做?(小白速成7)

    Android下拉列表 采用组件设置的形式添加下拉列表 我们要先添加选项,也就是我们列表中要选择的东西. 定义在values文件夹中的strings.xml中. <string-array na ...

  2. android sdcard 不存在,在android中显示sdcard上不存在的文件的提醒

    以下代码可正常运行,并播放sd卡上的音乐文件. 我想在sdcard上不存在音乐文件("不存在的音乐文件")时显示警报. 我该写些什么?在android中显示sdcard上不存在的文 ...

  3. [Android]只显示月和日的DatePickerDialog

    一.效果图 1.1 默认 1.2 处理后 二.实现代码 2.1 代码片段1     /**      * 从当前Dialog中查找DatePicker子控件      *       * @param ...

  4. 【Android】显示Emoji表情字符

    一.下载AndroidEmoji.ttf字体 地址1:Github Android Platform 地址2:AndroidEmoji.ttf.zip 二.使用 2.1 将字体拷贝到assets/fo ...

  5. android 电量控件,Android实现显示电量的控件代码

    下面介绍了Android实现显示电量的控件代码,具体代码如下: 1.目录结构,本人是使用安卓死丢丢. 2.运行界面,输入框中输入数值,点击刷新,会再电池中显示出相应的电量 3.绘制自定义电池控件,首先 ...

  6. Android 滑动显示下一层界面

    Android 滑动显示下一层界面 主要activity: public class UpPage extends Activity { private Button upButton; privat ...

  7. android Word 显示文档结构图

    今天,简单讲讲android里浏览Word文档时,如何显示文档的文档结构图. 这个其实也很简单,之前我把自己用WPS写成的文档发送给领导查看,他用的是Word查看的文档,所以没有显示我在WPS上设置的 ...

  8. java web mysql视图_Javaweb项目-下拉列表显示后台数据库的数据

    下面将演示前端下拉列表显示后台数据库中class表的说有班级的名称 环境: Tomcat-8.5.40 mysql-8.0.13 eclipse-4.9.0 springmvc框架 一.从mysql中 ...

  9. Android 不显示标题栏和全屏的设置方法

    Android 不显示标题栏和全屏的设置方法 1.在Manifest.xml中设置 不显示标题栏 android:theme="@android:style/Theme.NoTitleBar ...

最新文章

  1. PHP jquery瀑布流特效源码
  2. NeHe教程Qt实现——lesson07
  3. SpringBoot加Jquery实现ajax传递json字符串并回显消息(已实践)
  4. 【学术相关】近5年十大最具影响力的 AI 论文,你知道几个?
  5. c++ vector注意事项
  6. Atitit. Atiposter 发帖机 新特性 poster new feature   v7 q39
  7. uniapp实现动态生成随机图形验证码
  8. 恒生估值系统_恒生指数和恒生国企指数投资价值分析
  9. 判断String为空 StringUtils工具 isNotEmpty与isNotBlank区别
  10. HDU 4747 Mex【线段树上二分+扫描线】
  11. 一个while的小小问题
  12. 什么是GC Roots
  13. 同窗多年,一个无经验的应届生,一起转行做了软件测试并月薪8K
  14. tp5部署到nginx后所有分页404的解决办法
  15. 数据库查询·聚合分支格式化日期·思维导图要点误点(含示例)
  16. 过滤器Filter与监听器Listener
  17. CPU负载均衡之EAS
  18. 话里话外:个体时间管理的二三事
  19. 电脑技巧 ADSL如何远程盗号
  20. 张朝阳也看蜗居,这段采访很有趣

热门文章

  1. 除了微信多开,这款插件还能…
  2. 华为手机像素密度排行_华为p40pro屏幕像素密度ppi是多少呢
  3. Win11 专业工作站版安装安卓子系统方法 (离线包安装)
  4. HTC手机傻瓜式安装Google Play服务
  5. rpmbuild打包任意文件及目录制作为rpm文件
  6. Ubuntu+QT+SSL+MQTT
  7. ip2region 使用总结
  8. 焊工证怎么考取需要什么条件?焊工证考试时间是什么时候?
  9. Js日期yyyy-MM-dd与yyyy/MM/dd的区别
  10. FTDI的LibMPSSE编译流程