android进阶之spinner

来源:互联网 发布:心理学入门 知乎 编辑:程序博客网 时间:2024/05/01 06:36

 今天学习了android组件中的spinner,通过spinner完成了下拉列表的实现,下面通过使用ArrayAdapter适配器,实现。

  其实思想都一样,分为4步。

第一步,创建数据源。

第二步,新建适配器。

第三步,加载适配器。

下面先看一下效果,便于讲解;


第一步,新建数据源。把数据放在一个类型为String的list中。

第二步,新建适配器。

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

第一个参数表示上下文,不多做解释,第二个是android默认布局,当然如果不想用默认布局的话,可以采取其他方式(如simpleAdapter,baseAdapter),第三个参数是数据源。

第三步,给适配器设置一个下拉列表。

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

第四步,加载适配器。   

spinner.setAdapter(adapter); 

然后为了更好的显示效果,这里添加点击效果。设置监听事件。

spinner.setOnItemSelectedListener(this);   !!注意:这里使用的是OnItemSelectedListener,因此需要在头部继承OnItemSelectedListener类

下面分步展示完整代码:

首先是xml文件:

<LinearLayout 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:orientation="vertical"     >      <TextView           android:id="@+id/textview"          android:layout_width="match_parent"          android:layout_height="wrap_content"          android:textSize="25sp"          android:textColor="#ff0000"          />        <Spinner            android:id="@+id/spinner"           android:layout_width="match_parent"                    android:layout_height="wrap_content"          />   </LinearLayout>
MainActivity.java

package com.example.android_spinner;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.AdapterView.OnItemSelectedListener;import android.widget.ArrayAdapter;import android.widget.Spinner;import android.widget.TextView;public class MainActivity extends Activity implements OnItemSelectedListener{      private TextView tv1;      private List<String>list;      private Spinner spinner;      private ArrayAdapter<String>adapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);          tv1=(TextView) findViewById(R.id.textview);    spinner=(Spinner) findViewById(R.id.spinner);         tv1.setText("您选择的城市是北京");      //設置數據源           list=new ArrayList<String>();    list.add("北京");    list.add("上海");    list.add("獷州");    list.add("深圳");    //新建ArrayAdapter(數組適配器)    adapter=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,list);  //adapter設置一個下拉列式表    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);  //加載適配器   spinner.setAdapter(adapter);    spinner.setOnItemSelectedListener(this);}@Overridepublic void onItemSelected(AdapterView<?> parent, View view, int position, long id) {// TODO Auto-generated method stubString cityname=adapter.getItem(position);//Stirng city = list.get(position);tv1.setText("您选择的城市是"+cityname);}@Overridepublic void onNothingSelected(AdapterView<?> parent) {// TODO Auto-generated method stub}}




0 0
原创粉丝点击