热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用spinner做下拉对话框

使用spinner做下拉对话框今天因为需要,要做一个对话框,android自带的列表框无法满足这种效果:先看看运行的效果图:点击后有向下显示的对话框:一下是实现的代码:public

使用spinner 做下拉对话框

今天因为需要,要做一个对话框,android自带的列表框无法满足这种效果:

先看看运行的效果图:

《使用spinner 做下拉对话框》

点击后有向下显示的对话框:

《使用spinner 做下拉对话框》

一下是实现的代码:

public class MainActivity extends Activity {

Button button;

View view;

AlertDialog.Builder alertBuidler;

ArrayAdapter adapter;

LayoutInflater inflate;

private List list = new ArrayList();

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

button = (Button)findViewById(R.id.button);

inflate = LayoutInflater.from(this);

button.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

view = inflate.inflate(R.layout.alert_dialog, null);

Spinner spin = (Spinner)view.findViewById(R.id.spinner_City);

Spinner spin1 = (Spinner)view.findViewById(R.id.spinner_City1);

Spinner spin2 = (Spinner)view.findViewById(R.id.spinner_City2);

Spinner spin3 = (Spinner)view.findViewById(R.id.spinner_City3);

list.add(“北京”); 

        list.add(“上海”); 

        list.add(“深圳”); 

        list.add(“南京”); 

        list.add(“重庆”); 

       

        adapter = new ArrayAdapter(MainActivity.this,android.R.layout.simple_spinner_item, list); 

        //第三步:为适配器设置下拉列表下拉时的菜单样式。 

        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

        //第四步:将适配器添加到下拉列表上 

        spin.setAdapter(adapter);         

        spin1.setAdapter(adapter); 

        spin2.setAdapter(adapter); 

        spin3.setAdapter(adapter); 

          new AlertDialog.Builder(MainActivity.this).setView(view).show();

          view = null;       //这句话不能少,否则会抛出异常

}

});

}

}

主布局文件:

<RelativeLayout xmlns:android=&#8220;http://schemas.android.com/apk/res/android&#8221;

    xmlns:tools=&#8220;http://schemas.android.com/tools&#8221;

    android:layout_width=&#8220;match_parent&#8221;

    android:layout_height=&#8220;match_parent&#8221;

    android:paddingBottom=&#8220;@dimen/activity_vertical_margin&#8221;

    android:paddingLeft=&#8220;@dimen/activity_horizontal_margin&#8221;

    android:paddingRight=&#8220;@dimen/activity_horizontal_margin&#8221;

    android:paddingTop=&#8220;@dimen/activity_vertical_margin&#8221;

    tools:context=&#8220;.MainActivity&#8221; >

    <Button android:id=&#8220;@+id/button&#8221;

        android:layout_width=&#8220;wrap_content&#8221;

        android:layout_height=&#8220;wrap_content&#8221;

        android:text=&#8220;click&#8221; />

RelativeLayout>


弹出对话框的布局文件:

<LinearLayout  xmlns:android=&#8220;http://schemas.android.com/apk/res/android&#8221;

    xmlns:tools=&#8220;http://schemas.android.com/tools&#8221;

    android:id= &#8220;@+id/widget28&#8221;  

    android:layout_width= &#8220;fill_parent&#8221;  

    android:layout_height= &#8220;fill_parent&#8221;  

    android:orientation= &#8220;vertical&#8221;   >  

    <Spinner  

        android:id= &#8220;@+id/spinner_City&#8221;         

        android:layout_width= &#8220;fill_parent&#8221;  

        android:layout_height= &#8220;wrap_content&#8221; >  

     Spinner> 

     <Spinner  

        android:id= &#8220;@+id/spinner_City1&#8221;         

        android:layout_width= &#8220;fill_parent&#8221;  

        android:layout_height= &#8220;wrap_content&#8221; >  

     Spinner> 

     <Spinner  

        android:id= &#8220;@+id/spinner_City2&#8221;         

        android:layout_width= &#8220;fill_parent&#8221;  

        android:layout_height= &#8220;wrap_content&#8221; >  

     Spinner> 

     <Spinner  

        android:id= &#8220;@+id/spinner_City3&#8221;         

        android:layout_width= &#8220;fill_parent&#8221;  

        android:layout_height= &#8220;wrap_content&#8221; >  

     Spinner> 

LinearLayout> 

其中的样式,可更具需要自行修改

Demo下载地址:

http://download.csdn.net/download/lyhdream/5192993


推荐阅读
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • Activiti7流程定义开发笔记
    本文介绍了Activiti7流程定义的开发笔记,包括流程定义的概念、使用activiti-explorer和activiti-eclipse-designer进行建模的方式,以及生成流程图的方法。还介绍了流程定义部署的概念和步骤,包括将bpmn和png文件添加部署到activiti数据库中的方法,以及使用ZIP包进行部署的方式。同时还提到了activiti.cfg.xml文件的作用。 ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 深入理解CSS中的margin属性及其应用场景
    本文主要介绍了CSS中的margin属性及其应用场景,包括垂直外边距合并、padding的使用时机、行内替换元素与费替换元素的区别、margin的基线、盒子的物理大小、显示大小、逻辑大小等知识点。通过深入理解这些概念,读者可以更好地掌握margin的用法和原理。同时,文中提供了一些相关的文档和规范供读者参考。 ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • 本文介绍了Android中的assets目录和raw目录的共同点和区别,包括获取资源的方法、目录结构的限制以及列出资源的能力。同时,还解释了raw目录中资源文件生成的ID,并说明了这些目录的使用方法。 ... [详细]
  • Oracle seg,V$TEMPSEG_USAGE与Oracle排序的关系及使用方法
    本文介绍了Oracle seg,V$TEMPSEG_USAGE与Oracle排序之间的关系,V$TEMPSEG_USAGE是V_$SORT_USAGE的同义词,通过查询dba_objects和dba_synonyms视图可以了解到它们的详细信息。同时,还探讨了V$TEMPSEG_USAGE的使用方法。 ... [详细]
  • 解决IDEA配置xml文件头报错的方法
    本文介绍了解决IDEA配置xml文件头报错的方法,包括了具体的解决方案和步骤。通过本文的指导,读者可以轻松解决这个问题并正常使用IDEA进行开发工作。 ... [详细]
author-avatar
梦露的殇_192
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有