spinner----Mars第2季第1集

spinner使用的5个步骤

1、在布局文件中声明Spinner控件

2、创建ArrayAdapter,

      (1)在res/values/String.xml中声明下拉菜单的数组,然后通过CreateFromResource()方法创建

      (2)动态的在java代码里创建,调动ArrayAdapter的构造函数

3、在spinner上绑定adapter

4、写个监听器的类--实现OnItemSelectedListener接口

5、在spinner上绑定这个监听器


具体代码如下:

MainActivity.java

package com.example.s02_e01_spinner;

import java.util.ArrayList;
import java.util.List;


import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;


public class MainActivity extends Activity {
private Spinner spinner;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

spinner=(Spinner)findViewById(R.id.spinnerId);
//新建适配器有两种方法:1是通过createFromResource方法创建ArrayAdapter对象,先 在res/values下的String.xml中声明,这里引用该资源;
//android.R.layout.simple_spinner_item  android.R.layout.simple_dropdown_item_1line都是系统里的样式,也可以自定义
ArrayAdapter<CharSequence> adapter=ArrayAdapter.createFromResource(this, R.array.my_family,
android.R.layout.simple_spinner_item);//括号里的参数详见帮助文档
//设置适配器的下拉样式
adapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);

//2调用ArrayAdapter的构造函数动态的创建Arraydapter对象
/*List<String>list=new ArrayList<String>();
list.add("test1");
list.add("test2");
ArrayAdapter adapter=new ArrayAdapter(this,R.layout.item,R.id.textViewId,list);*/
//上面第一个参数:this,上下文对象;
//第2个参数:指定了下拉菜单中每一个条目的样式(样式风格写在Relativelayout的属性里)
//第3个参数:指定了这个list是显示在所在布局文件中的某控件的Id。item.xml的布局文件可有多个控件
//第4个参数:为整个列表提供的数据

//在spinner上添加上面剑豪的适配器
spinner.setAdapter(adapter);

//下面这条可有有个前提:activity_main.xml文件中设置android:spinnerMode="dialog",这个属性有两个可选(dialog和dropdown)
spinner.setPrompt("成员");

//在spinner上绑定监听器
spinner.setOnItemSelectedListener(new SpinnerOnItemSelectedListener());


}

class SpinnerOnItemSelectedListener implements OnItemSelectedListener{

@Override
public void onItemSelected(AdapterView<?> adapterview, View view, int postion,
long id) {
String selected=adapterview.getItemAtPosition(postion).toString();
System.out.println(selected);

}

@Override
public void onNothingSelected(AdapterView<?> arg0) {
System.out.println("you have chosed nothing");
//这里没有看到效果???
}

}

@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;
}

}


activity_main.xml

<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/spinnerId"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:spinnerMode="dialog"
        />


</RelativeLayout>


string.xml

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


    <string name="app_name">S02_E01_Spinner</string>
    <string name="action_settings">Settings</string>
    <string-array name="my_family">
        <item >葫芦娃</item>
        <item >玉华</item>
        <item >吉轩</item>
    </string-array>


</resources>


item.xml

<?xml version="1.0" encoding="UTF-8"?><LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:orientation="vertical"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     android:background="#ff0000"
      >
    <TextView
        android:id="@+id/textViewId"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#00ff00"
        />
    
  </LinearLayout>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值