`
rayln
  • 浏览: 430829 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Spinner下拉菜单控件

 
阅读更多
简单下拉菜单:

SpinnerActivity
package com.cn;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;

public class SpinnerActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        Spinner spinner = (Spinner) findViewById(R.id.spinner1);
        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
                this, R.array.spinnerList, android.R.layout.simple_spinner_item);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);
        
        spinner.setOnItemSelectedListener(new MyOnItemSelectedListener());
    }
    
    public class MyOnItemSelectedListener implements OnItemSelectedListener {

        public void onItemSelected(AdapterView<?> parent,
            View view, int pos, long id) {
        	Toast.makeText(parent.getContext(), "The planet is " +
        		parent.getItemAtPosition(pos).toString(), Toast.LENGTH_LONG).show();
        }

        public void onNothingSelected(AdapterView parent) {
          // Do nothing.
        }
    }
}


strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World, SpinnerActivity!</string>
    <string name="app_name">Spinner</string>
    <string-array name="spinnerList">
        <item>test1</item>
        <item>test2</item>
    </string-array>
</resources>



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="fill_parent"
    android:layout_height="fill_parent"
    >
<Spinner android:layout_height="wrap_content" android:layout_width="match_parent" android:id="@+id/spinner1"></Spinner>
</LinearLayout>


动态生成下拉框数据, 不定义样式
转载: http://imshare.iteye.com/blog/770950

1.新建一个android的工程
2.工程的layout.xml文件如下:声明一个TextView控件和一个Spinner控件
<?xml version="1.0" encoding="utf-8"?>  
<LinearLayout  
  xmlns:android="http://schemas.android.com/apk/res/android"  
  android:layout_width="fill_parent"  
  android:layout_height="fill_parent"  
  android:orientation="vertical"  
  >  
  <TextView android:id="@+id/spinnerText"  
            android:layout_width="fill_parent"   
            android:layout_height="wrap_content"></TextView>  
  <Spinner android:id="@+id/Spinner01"   
           android:layout_width="fill_parent"  
           android:layout_height="wrap_content"></Spinner>  
</LinearLayout>


3. Java代码
import android.app.Activity;  
import android.os.Bundle;  
import android.view.View;  
import android.widget.AdapterView;  
import android.widget.AdapterView.OnItemSelectedListener;  
import android.widget.ArrayAdapter;  
import android.widget.Spinner;  
import android.widget.TextView;  
  
public class SpinnerActivity extends Activity {  
      
    private static final String[] m={"A型","B型","O型","AB型","其他"};  
    private TextView view ;  
    private Spinner spinner;  
    private ArrayAdapter<String> adapter;  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        // TODO Auto-generated method stub  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.spinner);  
          
        view = (TextView) findViewById(R.id.spinnerText);  
        spinner = (Spinner) findViewById(R.id.Spinner01);  
        //将可选内容与ArrayAdapter连接起来  
        adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,m);  
          
        //设置下拉列表的风格  
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);  
          
        //将adapter 添加到spinner中  
        spinner.setAdapter(adapter);  
          
        //添加事件Spinner事件监听    
        spinner.setOnItemSelectedListener(new SpinnerSelectedListener());  
          
        //设置默认值  
        spinner.setVisibility(View.VISIBLE);  
          
    }  
      
    //使用数组形式操作  
    class SpinnerSelectedListener implements OnItemSelectedListener{  
  
        public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,  
                long arg3) {  
            view.setText("你的血型是:"+m[arg2]);  
        }  
  
        public void onNothingSelected(AdapterView<?> arg0) {  
        }  
    }  
}


4.效果图



如果需要动态生成下拉框数据.则
需要对ArrayAdapter做另外一种生成, 并且需要编写一个xml对每行的样式进行定义


SpinnerActivity.java
package com.cn;

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;

public class SpinnerActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        Spinner spinner = (Spinner) findViewById(R.id.spinner1);
       /* ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
                this, R.array.spinnerList, android.R.layout.simple_spinner_item);*/
        List<String> list = new ArrayList<String>();
        list.add("test3");
        list.add("test4");
        ArrayAdapter adapter = new ArrayAdapter(this, R.layout.item, R.id.textView1, list);
        
//        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);
        
        spinner.setOnItemSelectedListener(new MyOnItemSelectedListener());
    }
    
    public class MyOnItemSelectedListener implements OnItemSelectedListener {

        public void onItemSelected(AdapterView<?> parent,
            View view, int pos, long id) {
        	Toast.makeText(parent.getContext(), "The planet is " +
        		parent.getItemAtPosition(pos).toString(), Toast.LENGTH_LONG).show();
        }

        public void onNothingSelected(AdapterView parent) {
          // Do nothing.
        }
    }
}


item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent" android:orientation="horizontal">
    <TextView android:id="@+id/textView1" android:layout_width="match_parent" android:text="TextView" android:layout_height="wrap_content"></TextView>
   
    
</LinearLayout>

分享到:
评论

相关推荐

    Spinner下拉菜单多选 MultiSelectionSpinner

    Spinner下拉菜单多选,在布局xml文件直接作为控件使用,在activity里面调用就行了

    Android下拉菜单控件

    对于Android下拉菜单控件,我们可以创建一个自定义的类,如`PullDownMenu`,在这个类中我们可以封装Spinner或PopupMenu的基本操作,包括初始化、设置数据源、监听事件处理等。 1. 初始化:在初始化过程中,我们需要...

    android studio,demo,Spinner下拉菜单多选的实现

    在Android开发中,Spinner是一个非常常见的控件,它通常用于展示一个下拉列表供用户选择。本教程将详细讲解如何在Android Studio 3.0.1环境下实现Spinner的多选功能,这对于创建交互式用户界面非常有用。 首先,...

    spinner 下拉菜单源码

    在Android应用开发中,Spinner是一种常用的UI组件,它提供了一个下拉列表的交互方式,用于让用户在一组预定义的选项中进行选择。本篇将详细探讨Spinner的源码及其使用方法,帮助你深入理解这个控件的工作原理。 一...

    Spinner下拉菜单

    这个"Spinner下拉菜单"的主题主要涉及到如何自定义Spinner的XML样式,以满足特定的界面设计需求。 首先,我们来了解一下Spinner的基本结构。Spinner由两部分组成:一个是显示默认值的TextView,另一个是隐藏的下拉...

    Spinner下拉列表的应用

    在用户界面设计中,Spinner常被用来实现简洁的交互,用户可以点击控件触发下拉菜单,从中选择一个选项。本教程将深入讲解如何在Android应用中使用Spinner,并通过两种方式设置其数据源:XML文件和Java代码。 ### ...

    安卓下拉选择控件

    4. 数据源绑定:将控件与数据源(如ArrayList或SQLite数据库)绑定,可以动态加载和更新选项,实现动态下拉菜单。 综上所述,"安卓下拉选择控件"是一个集显示、交互和数据管理于一体的组件,其设计和实现涉及到了...

    spinner下拉列表 demo

    本教程将详细讲解如何在Android应用中实现Spinner下拉列表的Demo。 首先,我们需要理解Spinner的基本结构。Spinner本质上是一个视图,它包含一个默认显示的选项和一个可下拉的列表。当用户点击Spinner时,会弹出一...

    下拉菜单 下拉抽屉 自定义控件

    本话题将详细探讨"下拉菜单"和"下拉抽屉"这两种常见的自定义控件,并结合实际项目中的应用进行阐述。 首先,下拉菜单(Dropdown Menu)是一种常见的交互元素,常用于空间有限但选项众多的场景。在用户界面中,它以...

    ListView&Spinner;组合控件案例

    ListView主要用于展示大量的列表数据,而Spinner则提供了一个下拉选择菜单,用于在一组预定义的选项中进行选择。让我们深入探讨这两个控件的使用方法以及如何将它们结合到一个案例中。 **ListView** ListView是...

    Android Spinner 下拉菜单的使用

    1、定义Spinner控件 代码如下:&lt;Spinner android:id=”@+id/spinner”android:layout_width u201dfill_parent”android:layout_height=”wrap_content”android:prompt&gt;&lt;!– 一个String资源,所以要指向一个string...

    Android实现上下文菜单、下拉菜单、选项菜单代码

    在 Android 中,我们可以使用 Spinner 控件来实现下拉菜单。在示例代码中,我们可以使用 ArrayAdapter 将数据绑定到 Spinner 中,然后在 Spinner 的 OnItemSelectedListener 中处理选择事件。 三、选项菜单 选项...

    简单的下拉菜单提供大家下载

    3. 原生应用开发:在iOS和Android开发中,下拉菜单可通过特定的控件实现,如iOS的UIPickerView和Android的Spinner。 4. 框架与库:React、Vue、Angular等前端框架也提供了实现下拉菜单的组件,简化了开发过程。 三...

    Spinner二级联动下拉菜单

    "Spinner二级联动下拉菜单"是一个更复杂的功能,它涉及到两个Spinner,一个选择省份,另一个根据省份的选择动态加载并显示对应的城市。这个功能的实现涉及到多个知识点,下面将逐一详细讲解。 1. **Spinner基本使用...

    Android Spinner控件下拉列表框的实现

    Spinner由两部分组成:一个显示当前选中项的文本视图和一个下拉菜单,当用户点击该文本视图时,下拉菜单会弹出显示所有可用选项。默认情况下,用户点击其中一个选项后,Spinner会自动更新显示为所选选项。 2. **...

    Android menu下拉菜单

    总结,Android的下拉菜单是通过`Spinner`控件实现的,结合数据源、适配器和事件监听可以构建基本的下拉菜单。为了满足更复杂的设计需求,开发者还可以自定义布局和样式,甚至利用第三方库如"DropMenu"来扩展功能。...

    Spinner下拉列表的应用实例

    Spinner是Android系统中的一种常见控件,常用于在有限的选项中进行选择,类似于iOS的PickerView或网页中的下拉菜单。它具有节省屏幕空间、交互简洁的特点,广泛应用于设置界面、选择日期、时间等场景。本教程将深入...

    防android4.0 Spinner下拉效果

    在Android开发中,Spinner是一个常用的组件,它提供了一个下拉菜单的功能,用户可以从中选择一个选项。然而,在Android 4.0(API级别14)及以下版本中,Spinner的默认下拉效果可能不符合某些设计需求,比如下拉菜单...

    spinner+popupwindow 实现折叠菜单

    首先,Spinner是Android系统提供的一个下拉列表控件,常用于实现简单的下拉选择功能。它的基本用法是通过设置Adapter来填充数据,当用户点击Spinner时,会显示一个下拉列表供用户选择。Spinner的使用步骤包括: 1. ...

Global site tag (gtag.js) - Google Analytics