Android:有关==下拉菜单导航==的学习

因为先前的学习都没想着记录自己的学习历程,所以该博客才那么迟才开始写。

内容: ==下拉菜单导航==

学习网站:android Spinner控件详解

Spinner提供了从一个数据集合中快速选择一项值的办法。默认情况下Spinner显示的是当前选择的值,点击Spinner会弹出一个包含所有可选值的==dropdown菜单==,从该菜单中可以为Spinner选择一个新值。

阶段一:最简单的Spinner

1、在布局文件中添加Spinner控件

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.example.dropdownlayout.MainActivity">//AppBarLayout和Toolbar是对布局页面顶部的条进行操作<android.support.design.widget.AppBarLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:theme="@style/AppTheme.AppBarOverlay"><android.support.v7.widget.Toolbarandroid:id="@+id/toolbar"android:layout_width="match_parent"android:layout_height="?attr/actionBarSize"android:background="?attr/colorPrimary"app:popupTheme="@style/AppTheme.PopupOverlay" />//该部分才是下拉菜单的本体<Spinnerandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/spinner"android:entries="@array/places"></Spinner>//从这行可以看到资源都是从@array来的,因此需要一个这样的存放资源的xml文件</android.support.design.widget.AppBarLayout><include layout="@layout/content_main" /></android.support.design.widget.CoordinatorLayout>
<?xml version="1.0" encoding="utf-8"?>
<resources><string-array name="places"><item>Beijing</item><item>Guangzhou</item><item>Shanghai</item></string-array>
</resources>

效果:

但是这个终究只是效果,若要对选择进行回应就需要更加复杂的步骤来完善。一般情况下我们是需要响应Spinner选择事件的,可以通过==OnItemSelectedListener==的回调方法实现

MainActivity:

package com.example.dropdownlayout;import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.AdapterView;
import android.widget.Spinner;
import android.widget.SpinnerAdapter;
import android.widget.Toast;public class MainActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener{private Spinner spinner ;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);initUI();}private void initUI(){spinner = (Spinner)findViewById(R.id.spinner);spinner.setOnItemSelectedListener(this);}@Overridepublic void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {String[] places = getResources().getStringArray(R.array.places);Toast.makeText(MainActivity.this,"你点击的是:"+places[i],Toast.LENGTH_SHORT).show();}@Overridepublic void onNothingSelected(AdapterView<?> adapterView) {}
}

效果:

阶段二:学会设置Spinner的BaseAdapter

通过BaseAdapter可以自定义自己的菜单形式,但菜单的形式需要自己来设计

spinnerview:

<?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="match_parent"><TextViewandroid:id="@+id/personName"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="personName  "android:textSize="20dp"android:textColor="@color/colorAccent"/><TextViewandroid:id="@+id/personAddress"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="personAddress"android:textSize="20dp"android:textColor="@color/colorAccent"/></LinearLayout>

main.xml中的spinner要把enteries这一项去掉。

Person.java

package com.example.dropdownlayout;/*** Created by Funny_One on 2017/8/18.*/public class Person {public String personName,personAddress;public Person(String personName,String personAddress){this.personAddress = personAddress;this.personName = personName;}public String getPersonAddress() {return personAddress;}public String getPersonName() {return personName;}
}

Myadapter.java

package com.example.dropdownlayout;import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;import java.util.List;/*** Created by Funny_One on 2017/8/18.*/public class Myadapter extends BaseAdapter {public List<Person> mList;public Context context;public View mView;public Myadapter(Context context,List<Person> mList){this.mList = mList;this.context = context;}@Overridepublic int getCount() {return mList.size();}@Overridepublic Object getItem(int i) {return mList.get(i);}@Overridepublic long getItemId(int i) {return i;}@Overridepublic View getView(int i, View view, ViewGroup viewGroup) {LayoutInflater layoutInflater = LayoutInflater.from(context);mView = layoutInflater.inflate(R.layout.spinnerview,null);TextView personName = (TextView)mView.findViewById(R.id.personName);TextView personAddress=(TextView)mView.findViewById(R.id.personAddress);personAddress.setText(mList.get(i).getPersonAddress());personName.setText(mList.get(i).getPersonName());return mView;}
}

MainActivity:

    package com.example.dropdownlayout;import android.app.Activity;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.SpinnerAdapter;
import android.widget.Toast;import java.util.ArrayList;
import java.util.List;public class MainActivity extends Activity {private Spinner spinner ;private List<Person> persons;private Myadapter myadapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);spinner = (Spinner)findViewById(R.id.spinner);persons = new ArrayList<Person>();persons.add(new Person(" 袁逸灏 "," 广东 "));persons.add(new Person(" 春旺 "," 云南 "));persons.add(new Person(" 刘先润 "," 重庆 "));persons.add(new Person(" 刘诚昊 "," 湖南 "));myadapter = new Myadapter(this,persons);spinner.setAdapter(myadapter);}}

效果:

转载于:https://www.cnblogs.com/VersionP1/p/7498343.html

Android:有关下拉菜单导航的学习(供自己参考)相关推荐

  1. 动态导航多级下拉菜单 html,css3实现的多级渐变下拉菜单导航效果代码

    本文实例讲述了css3实现的多级渐变下拉菜单导航效果代码.分享给大家供大家参考.具体如下: 这是一款基于css3实现的下拉菜单导航,是非常漂亮的动画菜单,而且是多级菜单的形式,测试时发现可支持5级,估 ...

  2. android 美团下拉菜单,Android仿美团分类下拉菜单实例代码

    本文实例为大家分享了Android仿美团下拉菜单的实现代码,分类进行选择,供大家参考,具体内容如下 效果图 操作平台 AS2.0 第三方框架:butterknife build.gradle depe ...

  3. android studio 下拉菜单,android studio 的下拉菜单Spinner使用详解

    一.认识Spinner Spinner其实就是一个列表选择框.不过Android的列表选择框并不需要显示下拉列表,而是相当于弹出一个菜单供用户选择. Spinner 与 Gallery 都继承了Abs ...

  4. Android 自定义下拉菜单的实现(基于PopupWindow+RecyclerView)

    文章目录 一.引言 二.效果 三.代码实现 四.结语 一.引言 安卓自带的Spinner局限性较大,基本不能满足开发样式要求,当前又没有成熟的相关框架,所以决定自己使用PopupWindow实现一个下 ...

  5. android studio 下拉菜单,怎么在android studio中使用Spinner实现一个下拉菜单

    怎么在android studio中使用Spinner实现一个下拉菜单 发布时间:2021-03-23 14:56:15 来源:亿速云 阅读:92 作者:Leah 这期内容当中小编将会给大家带来有关怎 ...

  6. html中按钮下拉菜单,Bootstrap3.0学习笔记之按钮与下拉菜单

    前面的文章算是把Bootstrap CSS部分简单的学习了一遍,应该忽视了比较多的细节问题.不过大部分的内容我都过了一遍,并且用代码实现了一遍,而且看到了真实的效果.挺不错的.那么接下来的几篇文章主要 ...

  7. android 自定义下拉菜单

    本实例的自定义下拉菜单主要是继承PopupWindow类来实现的弹出窗体,各种布局效果可以根据自己定义设计.弹出的动画效果主要用到了translate.alpha.scale,具体实现步骤如下: 先上 ...

  8. android联动下拉菜单,Android spinner下拉框连动

    本代码主要功能 1. 向拉菜单 spinner添加数据 2.下拉菜单连动 以下是核心代码 //定义变量 private Spinner spinner3; private Spinner spinne ...

  9. Bootstrap4----网络系统、图像形状、轮播、滚动监听、多媒体对象、下拉菜单导航及按钮

    Bootstrap4 1.网络系统 规则 屏幕最多分为12列(同一行数字相加应为12) 用行来创建水平的列组 为自动设置外边距内边距,需将网格每一行需要放在设置了 .container (固定宽度) ...

最新文章

  1. 第十五届全国大学生智能车全国总决赛获奖信息-华北赛区
  2. visio 2010下载
  3. 最简单的基于FFmpeg的AVfilter的例子-修正版
  4. python中frame中的元素怎么识别_python3.6+selenium实现操作Frame中的页面元素
  5. 浅谈导航电子地图的组成和制作流程
  6. Java代码中方法的特殊修饰符/修饰词/关键字
  7. hdu 3094——A tree game
  8. linux命令数据盘分多个区,pvmove命令 – 移动物理盘区
  9. 二叉树前序遍历_LeetCode125|二叉树的前序遍历
  10. python机器学习库sklearn——特征选择
  11. java实现打印功能_Js 打印功能的实现(Java)
  12. java学校信息管理系统 论文设计与实现
  13. JanusGraph配置
  14. 基于osgEarth的空间态势三维场景视点控制与卫星轨道绘制
  15. ACProtect ——脱壳
  16. ROS 入门基础(四)自定义话题, publisher和Subscriber
  17. 为啥将phpstudy打开,却访问不了rips
  18. Linux必学的60个命令(文字整理版)
  19. Nothing is impossble_七夕小子_新浪博客
  20. stm32外设-DMA

热门文章

  1. 2020移动apn接入点哪个快_手机资讯:5G 网络和现在 iPhone 使用的 Wi-Fi 有什么区别速度会更快吗...
  2. 雨伞被拿错,你怎么办?!
  3. 银行卡收单____对账__单边账
  4. 微信分享不显示右边缩略图
  5. HTTP协议基本格式
  6. 图像变形算法:实现Photoshop液化工具箱中向前变形工具
  7. java基础第四课(封装,继承,接口)
  8. 数字 IC 技能拓展(16)Zynq 与 Pynq 都是什么呢
  9. PBFT -Golang实现详解
  10. Flash与文件系统简介