展会信息港展会大全

android下拉列表框Spinner的使用
来源:互联网   发布日期:2015-10-02 15:55:35   浏览:3377次  

导读:spinner就相当于Html中的下拉列表框,在下面的例子里我们共同学习一下spinner的使用。在这一小节,让我们建一个小关于色彩的下拉列表,当某一个选项被选择时,弹出一个吐司消息。1、建一个新的项目,打开res/val......

spinner就相当于Html中的下拉列表框,在下面的例子里我们共同学习一下spinner的使用。在这一小节,让我们建一个小关于色彩的下拉列表,当某一个选项被选择时,弹出一个吐司消息。

1、建一个新的项目,打开res/values/strings.xml文件,写入如下代码:

< ?xml version="1.0" encoding="utf-8"?>

<resources>

<string name="app_name">MainHelloSpinner</string>

<string name="color">选择色彩:</string>

<string -array="" name="colors">

<item>黑色 | Black</item>

<item>蓝色 | Blue</item>

<item>棕色 | Brown</item>

<item>绿色 | Green</item>

<item>灰色 | Grey</item>

<item>粉色 | Pink</item>

<item>紫色 | Purple</item>

<item>红色 | Red</item>

<item>白色 | White</item>

<item>黄色 | Yellow</item>

</string>

</resources>

2、打开res/layout/main.xml 写入如下内容:

< ?xml version="1.0" encoding="utf-8"?>

<linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:padding="10dip" android:layout_width="fill_parent" android:layout_height="wrap_content">

<textview android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margintop="10dip" android:text="@string/color">

<spinner android:id="@+id/spinner" android:layout_width="fill_parent" android:layout_height="wrap_content" android:prompt="@string/color">

</spinner></textview>

</linearlayout>

3、打开MainHelloSpinner.java 写入下内容:

package android.basic.lesson10;

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 MainHelloSpinner extends Activity {

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

//找到Xml中定义的下拉列表

Spinner spinner = (Spinner)findViewById(R.id.spinner);

//准备一个数组适配器

ArrayAdapter adapter = ArrayAdapter.createFromResource(

this, R.array.colors, android.R.layout.simple_spinner_item);

//设置下拉样式

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

//为下拉列表设置适配器

spinner.setAdapter(adapter);

//定义子元素选择监听器

OnItemSelectedListener oisl=new OnItemSelectedListener() {

@Override

public void onItemSelected(AdapterView<?> parent, View view,

int position, long id) {

Toast.makeText(MainHelloSpinner.this,"选择的色彩: " +

parent.getItemAtPosition(position).toString(), Toast.LENGTH_LONG).show();

}

@Override

public void onNothingSelected(AdapterView<?> parent) {

}

};

//为下拉列表绑定事件监听器

spinner.setOnItemSelectedListener(oisl);

}

}

4、运行程序:

八、AutoCompleteTextView 自动完成文本框

AutoCompleteTextView和EditText一样都可以输入文本。但它可以和适配器绑定,当用户输入两个及以上字符时,系统将根据 适配器提供的内容,进行文本的自动匹配提示。这个Web开发中Ajax里的一个标志性的功能,现在被Android弄成了一个标准组件。下面我们通过一个 例子来学习一下:

1、建一个新的项目,打开res/values/strings.xml文件,写入如下代码:

< ?xml version="1.0" encoding="utf-8"?>HelloAutoCompleteTextViewshan dongjiang suan huizhe jiangfu jianshang haiguang dongguang xihai nanhu beihu nanhe nanjiang xibei jingtian jinhe beishan xinei meng guning xiaxin jiangqing haishan xigan susi chuanyun nangui zhouxi zangchong qingliao ningji linhei long jiangtai wanxiang guangao men山东江苏安徽浙江福建上海广东广西海南湖北湖南河南江西北京天津河北山西内蒙古宁夏新疆青海陕西甘肃四川云南贵州西藏重庆辽宁吉林黑龙江台湾香港澳门

2、打开res/layout/main.xml 写入如下内容:

< ?xml version="1.0" encoding="utf-8"?>

3、打开MainHelloAutoCompleteTextView.java 写入下内容:

package android.basic.lesson10;

import android.app.Activity;

import android.os.Bundle;

import android.widget.ArrayAdapter;

import android.widget.AutoCompleteTextView;

public class MainHelloAutoCompleteTextView extends Activity {

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

//定义数组

String[] province = getResources().getStringArray(R.array.province);

//定义数组适配器

ArrayAdapter adapter = new ArrayAdapter(this, R.layout.list_item, province);

//找到自动完成组件

AutoCompleteTextView atv = (AutoCompleteTextView) findViewById(R.id.AutoCompleteTextView01);

//为其设置适配器

atv.setAdapter(adapter);

}

}

4、运行程序,在英文输入法下输入 h 看看效果,再切换到中文输入法下输入 河 看看效果:

这里留意一下,android:completionThreshold= 1属性设置了一个阀值,规定用户打了多少字符之后才出现自动提示,默认值是2,我们在这里改成了1。

九、DatePicker 日期选择控件 DatePickerDialog 日期选择对话框

日期选择的对话框漂亮,我们用一个例子演示一下:

1、main.xml的代码:

< ?xml version="1.0" encoding="utf-8"?>

其中文本框用来显示时间,按钮为了触发日期选择对话框,当然用其他组件来触发日期选择对话框也是的。

2、java代码:

package android.basic.lesson10;

import java.util.Calendar;

import android.app.Activity;

import android.app.DatePickerDialog;

import android.app.DatePickerDialog.OnDateSetListener;

import android.app.Dialog;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.DatePicker;

import android.widget.TextView;

public class MainHelloDatePicker extends Activity {

//准备公用属性

private TextView dateDisplay;

private Button pickDate;

private int mYear;

private int mMonth;

private int mDay;

//准备对话框Id

static final int DATE_DIALOG_ID = 0;

//准备日期设置监听器

private OnDateSetListener dsl = new DatePickerDialog.OnDateSetListener(){

@Override

public void onDateSet(DatePicker view, int year, int monthOfYear,

int dayOfMonth) {

mYear =year;

mMonth= monthOfYear;

mDay= dayOfMonth;

dateDisplay.setText(mYear+"-"+(mMonth+1)+"-"+mDay);

}

};

//重写创建对话框方法

@Override

protected Dialog onCreateDialog(int id){

switch(id){

case DATE_DIALOG_ID:

//把Activity上下文、日期设置监听器、以及日期的年月日都作为参数传给那个新成立的对话框组件

return new DatePickerDialog(this, dsl, mYear, mMonth, mDay);

}

return null;

}

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

//得到当前日期

final Calendar c = Calendar.getInstance();

mYear = c.get(Calendar.YEAR);

mMonth = c.get(Calendar.MONTH);

mDay = c.get(Calendar.DAY_OF_MONTH);

//获取xml中的组件

dateDisplay= (TextView)findViewById(R.id.dateDisplay);

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

//给日期显示组件一个初始值

dateDisplay.setText(mYear+"-"+(mMonth+1)+"-"+mDay);

//给按钮绑定点击监听器

pickDate.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {

showDialog(DATE_DIALOG_ID);

}

});

}

}

3、运行程序

读者可以特别留意一下本节关于OnDateSetListener的代码,体会监听器的作用,有兴趣的同学可以看一下DatePickDialog和DatePick的源代码。

十、TimePicker 时间选择控件 和 TimePickerDialog 时间选择对话框

和上一小节的例子基本相同,就不举了。

本讲暂时就到这里。

赞助本站

人工智能实验室

相关热词: 下拉列表 Spinner

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港