android进阶之spinner

 今天学习了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;
	@Override
	protected 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);
	}
	@Override
	public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
		// TODO Auto-generated method stub
		String cityname=adapter.getItem(position);
		//Stirng city = list.get(position);		
		tv1.setText("您选择的城市是"+cityname);
	}
	@Override
	public void onNothingSelected(AdapterView<?> parent) {
		// TODO Auto-generated method stub
		
	}

}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值