展会信息港展会大全

Android spinner控件的实现
来源:互联网   发布日期:2015-10-02 15:59:30   浏览:1151次  

导读:手机的屏幕较小,因此使用下拉列表来进行选择式输入是一个非常好的方式。Spinner与 ListView 一样,也是 AdapterView 的一个间接子类,是一个显示数据的窗口。Spinn...

手机的屏幕较小,因此使用下拉列表来进行选择式输入是一个非常好的方式。Spinner

与 ListView 一样,也是 AdapterView 的一个间接子类,是一个显示数据的窗口。

Spinner 类常用的方法如下:

Spinner.getItemAtPosition(Spinner.getSelectedItemPosition()); 获取下拉列

表框的值

调用 setOnItemSelectedListener() 方法,处理下拉列表框被选择事件, 把

AdapterView.OnItemSelectedListener 实例作为参数传入

strings.xml

[html]

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

<resources>

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

<string name="hello_world">Hello world!</string>

<string name="menu_settings">Settings</string>

<string name="selectStr">你的选择是?</string>

</resources>

main.xml

[html]www.2cto.com

<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"

tools:context=".MainActivity" >

<TextView

android:id="@+id/TextView_Show"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/selectStr"

android:textSize="16sp">

</TextView>

<Spinner

android:id="@+id/spinner_City"

android:layout_width="fill_parent"

android:layout_marginTop="50dp"

android:layout_height="wrap_content">

</Spinner><!-- 定义一个下拉菜单-->

</RelativeLayout>

java代码实现

[java]

package com.example.aspinnerdemo;

import java.util.ArrayList;

import java.util.List;

import android.app.Activity;

import android.os.Bundle;

import android.view.MotionEvent;

import android.view.View;

import android.view.Menu;

import android.widget.AdapterView;

import android.widget.ArrayAdapter;

import android.widget.Spinner;

import android.widget.TextView;

public class MainActivity extends Activity {

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

private List<String> list = new ArrayList<String>();

private TextView myTextView;

private Spinner mySpinner;

private ArrayAdapter<String> adapter;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

//第一步:添加一个下拉列表项的list,这里添加的项就是下拉列表的菜单项

list.add("测试一");

list.add("测试二");

list.add("测试三");

list.add("测试四");

list.add("测试五");

list.add("测试六");

list.add("测试七");

list.add("测试八");

list.add("测试九");

myTextView = (TextView)findViewById(R.id.TextView_Show);

mySpinner = (Spinner)findViewById(R.id.spinner_City);

//第二步:为下拉列表定义一个适配器,这里就用到里前面定义的list。

adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, list);

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

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

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

mySpinner.setAdapter(adapter);

//第五步:为下拉列表设置各种事件的响应,这个事响应菜单被选中

mySpinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener(){

public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {

// TODO Auto-generated method stub

/* 将所选mySpinner 的值带入myTextView 中*/

myTextView.setText("您选择的是:"+ adapter.getItem(arg2));

/* 将mySpinner 显示*/

arg0.setVisibility(View.VISIBLE);

}

public void onNothingSelected(AdapterView<?> arg0) {

// TODO Auto-generated method stub

myTextView.setText("NONE");

arg0.setVisibility(View.VISIBLE);

}

});

/*下拉菜单弹出的内容选项触屏事件处理*/

mySpinner.setOnTouchListener(new Spinner.OnTouchListener(){

public boolean onTouch(View v, MotionEvent event) {

// TODO Auto-generated method stub

/* 将mySpinner 隐藏,不隐藏也可以,看自己爱好*/

v.setVisibility(View.INVISIBLE);

return false;

}

});

/*下拉菜单弹出的内容选项焦点改变事件处理*/

mySpinner.setOnFocusChangeListener(new Spinner.OnFocusChangeListener(){

public void onFocusChange(View v, boolean hasFocus) {

// TODO Auto-generated method stub

v.setVisibility(View.VISIBLE);

}

});

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.activity_main, menu);

return true;

}

}

赞助本站

人工智能实验室

相关热词: android开发 教程

AiLab云推荐
推荐内容
展开

热门栏目HotCates

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