Android编程开发之Spinner控件用法实例分析

本文实例讲述了Android编程开发之Spinner控件用法。分享给大家供大家参考,具体如下:

下拉列表 Spinner,Spinner是一个每次只能选择所有项的一个项的控件。它的项来自于与之相关联的适配器中。

Spinner的使用,可以极大提高用户的体验性。当需要用户选择的时候,可以提供一个下拉列表将所有可选的项列出来。供用户选择。

一、使用数组作为数据源

布局文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:paddingBottom="@dimen/activity_vertical_margin"
 android:paddingLeft="@dimen/activity_horizontal_margin"
 android:paddingRight="@dimen/activity_horizontal_margin"
 android:paddingTop="@dimen/activity_vertical_margin"
 tools:context=".MainActivity" >
 <Spinner
  android:id="@+id/spinner1"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:layout_alignParentLeft="true"
  android:layout_alignParentTop="true" />
</RelativeLayout>

MainActivity.java

package com.example.lesson16_spinner;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.SimpleAdapter;
import android.widget.Spinner;
import android.widget.Toast;
public class MainActivity extends Activity {
 // 声明spinner对象
 private Spinner spinner;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  spinner = (Spinner) findViewById(R.id.spinner1);
  //使用数组作为数据源
  final String arr[] = new String[] { "周一", "周二", "周三", "周四", "周五", "周六", "周七" };
  // adpater对象
  ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, arr);
  List<Map<String, Object>> data = new ArrayList<Map<String, Object>>();
  Map<String, Object> map = new HashMap<String, Object>();
  map.put("logo", R.drawable.ic_launcher);
  map.put("text", "xxxx说明操作");
  Map<String, Object> map2 = new HashMap<String, Object>();
  map2.put("logo", R.drawable.ic_launcher);
  map2.put("text", "xxx说明xxx");
  data.add(map);
  data.add(map2);
  SimpleAdapter simpleAdapter = new SimpleAdapter(this, data, R.layout.activity_item, new String[] { "logo", "text" }, new int[] { R.id.imageView1, R.id.textView1 });
  // 设置显示的数据
   spinner.setAdapter(arrayAdapter);
  //spinner.setAdapter(simpleAdapter);
  Toast.makeText(getApplicationContext(),"main Thread"+ spinner.getItemAtPosition(spinner.getSelectedItemPosition()), Toast.LENGTH_LONG).show();
  // 注册事件
  spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
   @Override
   public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
    // String content = arr[position];
    Spinner spinner = (Spinner) parent;
    Toast.makeText(getApplicationContext(), "xxxx" + spinner.getItemAtPosition(position), Toast.LENGTH_LONG).show();
   }
   @Override
   public void onNothingSelected(AdapterView<?> parent) {
    Toast.makeText(getApplicationContext(), "没有改变的处理", Toast.LENGTH_LONG).show();
   }
  });
 }
 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
  // Inflate the menu; this adds items to the action bar if it is present.
  getMenuInflater().inflate(R.menu.main, menu);
  return true;
 }
}

效果如下:

二、使用XML作为数据源(非本人代码)

布局文件:

<?xml version="1.0" encoding="utf-8"?>
<resources>
 <string-array name="plantes">
  <item>NOKIA</item>
  <item>MOTO</item>
  <item>HTC</item>
  <item>LG</item>
  <item>其他</item>
 </string-array>
</resources>

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 TextView view2;
 private Spinner spinner2;
 private ArrayAdapter adapter2;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  // TODO Auto-generated method stub
  super.onCreate(savedInstanceState);
  setContentView(R.layout.spinner);
  spinner2 = (Spinner) findViewById(R.id.spinner02);
  view2 = (TextView) findViewById(R.id.spinnerText02);
  //将可选内容与ArrayAdapter连接起来
  adapter2 = ArrayAdapter.createFromResource(this, R.array.plantes, android.R.layout.simple_spinner_item);
  //设置下拉列表的风格
  adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
  //将adapter2 添加到spinner中
  spinner2.setAdapter(adapter2);
  //添加事件Spinner事件监听
  spinner2.setOnItemSelectedListener(new SpinnerXMLSelectedListener());
  //设置默认值
  spinner2.setVisibility(View.VISIBLE);
 }
 //使用XML形式操作
 class SpinnerXMLSelectedListener implements OnItemSelectedListener{
  public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
   view2.setText("你使用什么样的手机:"+adapter2.getItem(arg2));
  }
  public void onNothingSelected(AdapterView<?> arg0) {
  }
 }
}

希望本文所述对大家Android程序设计有所帮助。

(0)

相关推荐

  • Android实现下拉菜单Spinner效果

    Android 中下拉菜单,即如html中的<select>,关键在于调用setDropDownViewResource方法,以XML的方式定义下拉菜单要显示的模样 1.1.activity_main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android

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

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

  • Android下拉列表spinner的实例代码

    spinner组件有点类型于HTML中的下拉框<Select></select>的样子,让用户每次从下拉框中选取一个,本文为大家分享了Android下拉列表spinner的具体实现代码,供大家参考,具体内容如下 mian.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.c

  • Android实现三级联动下拉框 下拉列表spinner的实例代码

    主要实现办法:动态加载各级下拉值的适配器 在监听本级下拉框,当本级下拉框的选中值改变时,随之修改下级的适配器的绑定值              XML布局: 复制代码 代码如下: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_w

  • Android spinner下垃菜单用法实例详解

    本文实例讲述了Android spinner下垃菜单用法.分享给大家供大家参考,具体如下: 一.使用数组作为数据源 1. 在layout布局文件:声明一个TextView控件和一个Spinner控件,代码如下 <Spinner android:id="@+id/Spinner01" android:layout_width="fill_parent" android:layout_height="wrap_content"></

  • Android编程开发之Spinner组件用法

    本文实例讲述了Android编程开发之Spinner组件用法.分享给大家供大家参考,具体如下: Spinner组件组要用显示一个下拉列表,在使用中需要用到适配器Adapter,下面是一个该组件的使用示例 首先是布局文件main.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res

  • Android Spinner 下拉菜单的使用

    Android 中下拉菜单,即如html中的<select>,关键在于调用setDropDownViewResource方法,以XML的方式定义下拉菜单要显示的模样 步骤: 1.定义Spinner控件 复制代码 代码如下: <Spinner android:id="@+id/spinner"android:layout_width="fill_parent"android:layout_height="wrap_content"

  • 学习Android自定义Spinner适配器

    本文为大家分享Android自定义Spinner适配器的相关知识点,供大家参考,具体内容如下 一.大致效果 二.关键代码 在注释中讲重点吧. (1)Spinner的布局: car_brand_spinner.xml 即为弹出来的下拉列表的布局啦,后面的那个布局就不拿出来丢人现眼了,反正知道有一个Spinner的id为carBrandSpinner就可以了. <?xml version="1.0" encoding="utf-8"?> <Linear

  • android 之Spinner下拉菜单实现级联

    效果图如下: 默认第一次加载 选择原始队列: 级联效果图: 关键代码给下拉列表选中事件监听绑定Id : 复制代码 代码如下: int pos = firsthand_dlbh_pinner.getSelectedItemPosition();firsthand_pdbh_adapter = new ArrayAdapter<String>(context, android.R.layout.simple_spinner_item, queu_info[pos]);firsthand_pdbh_

  • Android中Spinner控件之键值对用法实例分析

    本文实例讲述了Android中Spinner控件之键值对用法.分享给大家供大家参考.具体如下: 一.字典表,用来存放键值对信息 package com.ljq.activity; import java.io.Serializable; @SuppressWarnings("serial") public class Dict implements Serializable { private Integer id; private String text; public Dict()

  • Android自定义Spinner下拉列表(使用ArrayAdapter和自定义Adapter实现)

    今天学习了Spinner组件的使用,非常好用的一款组件,相当于从下拉列表中选择项目,今天收获颇多,下面给大家演示一下Spinner的使用(分别使用ArrayAdapter和自定义Adapter实现),具体内容如下. (一):使用ArrayAdapter进行适配数据: ①:首先定义一个布局文件: <span style="font-size:16px;"><?xml version="1.0" encoding="utf-8"?&

随机推荐