`
rayln
  • 浏览: 415176 次
  • 性别: 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 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...

    下拉列表spinner

    Spinner是android中提供的是可以弹出的下拉菜单控件,和Listview同样是一个AdapterView,本工程中包含三个下拉样式.

    安卓开发 Spinner控件的使用实例

    该文档为eclipse编程下的安卓项目,主要实现了Spinner控件的使用,实现下拉菜单

    像QQ登录时的下拉列表

    在Android里,直接提供的Spinner控件虽然可以实现下拉菜单的效果,但其效果并不理想,很多时候我们需要类似手机QQ那样既可以在文本框中直接输入编辑文字,可以在下拉菜单中选中或者删除菜单选项,并且下拉菜单并不是...

    下拉列表demo

    直接导入android studio,组合控件下拉列表菜单demo,spinner和PopupWindow简单实现下拉菜单。

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

    不过Android的列表选择框并不需要显示下拉列表,而是相当于弹出一个菜单供用户选择。 Spinner 与 Gallery 都继承了AbsSpinner,AbsSpinner 继承了AdapterView,因此它也表现出AdapterView的特征:只要为AdapterView...

    Android编程之下拉菜单Spinner控件用法示例

    主要介绍了Android编程之下拉菜单Spinner控件用法,结合简单实例形式分析了Android下拉菜单Spinner的布局与功能相关实现技巧,需要的朋友可以参考下

    Android使用Spinner控件实现下拉列表的案例

    (1)两种方法提冲Spinner中的数据源:通过list集合,或者是通过xml文件进行配置 (2)布局代码如下: &lt;RelativeLayout xmlns:android=http://schemas.android.com/apk/res/android xmlns:tools=...

    Android编程下拉菜单spinner用法小结(附2则示例)

    本文较为详细的总结分析了Android编程下拉菜单spinner用法。分享给大家供大家参考,具体如下: Spinner控件也是一种列表类型的控件,它的继承关系如下: java.lang.Object  ↳ android.view.View  ↳ android....

    Android Spinner 高级用法实例演示.rar

    在这个例子中包括了众多Android Spinner 控件的用法,以一个下拉框的效果来展示很多Spinner 的使用技巧,示例中的myspinner_dropdown自定义下拉菜单模式定义在res/layout目录下,代码中演示了将ArrayAdapter添加...

    Android下拉菜单组件

    源码BetterSpinner,BetterSpinner是一个使用AutoCompleteTextView实现Android Spinner下拉菜单功能的Android类库。作者认为自带的Spinner很烦,所以基于AutoCompleteTextView实现自己的Spinner控件。

    Android Spinner与适配器模式详解及实例代码

    是一个下拉列表,往安卓界面中拖拽一个Spinner控件,在属性中设置Android:entries=“@array/spinner_data” 其中spinner_data为在string中设置的数组。数组中由固定写好的值。此时便可在界面设置好下拉列表。 &lt;...

    老罗android视频开发源码和ppt经典

    6.25 Spinner下拉列表控件 6.26 ImageSwitcher图片切换控件 6.27 GridView网格控件 6.28 TabHost卡片的使用 6.29 ViewStub惰性装载控件 6.30 ViewPager多页面滑动效果一 6.31 ViewPager多页面滑动效果二 6.32 ...

    PopWindowUtils.zip

    popwindow弹框就给我们提供了很好的思路,根据当前的UI布局文件,把textView变成下拉菜单,并且可以在此的基础上进行自定义更改样式。满足了开发人员的需求,我上传的工具包就是把textview变成spinner,该工具包适用...

    Android基础知识详解

    下拉列表框Spinner 74 ScrollView、HorizontalScrollView 77 垂直滚动(ScrollView) 77 水平滚动(HorizontalScrollView) 78 两个方向均可滚动 78 TabHost 79 ProgressBar、SeekBar、RatingBar 81 进度条...

    c_java_android_

    内容涉及Android的系统架构、Webkit浏览器引擎简介、Dalvik虚拟机简介、Activity生命周期、Android控件的继承关系、界面布局、Android对话框、Android菜单,显示和编辑文本的控件、日期和时间控件、单选框、复开关...

    vfp6.0系统免费下载

    纵使 Visual FoxPro 6.0 更新成新的 Mscomctl.ocx 文件,带有这些控件的旧的 5.0 版表单将仍引用旧的文件,因为 ActiveX 控件是由其 OleClass 属性绑定的。旧 Comctl32.ocx 文件中的 ActiveX 控件为版本 1。例如,...

Global site tag (gtag.js) - Google Analytics