android spinner 简书,【Android】Spinner:下拉列表笔记

AdapterView使用方式都是类似的,都是通过适配器来适配数据源,然后将适配器设置到对应的AdapterView上进行显示

在Spinner中呈现自定义的一些属性值

a.在res-->values-->新建一个xml文件(如datalist.xml)

北京

四川

天津

上海

湖南

b.回到MainActivity中定义这个属性private ArrayAdapter adapterXML;

c.听过方法,将它放入到Spinner中:

private void initByXML() {

adapterXML = ArrayAdapter.createFromResource(this,R.array.datalist,android.R.layout.simple_list_item_1);

spinner.setAdapter(adapterXML);

}

总代码:

package com.example.spinnertest;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.widget.ArrayAdapter;

import android.widget.Spinner;

import java.util.ArrayList;

import java.util.List;

public class MainActivity extends AppCompatActivity {

private Spinner spinner;

// private ArrayAdapter adapter;

private ArrayAdapter adapterXML;

private List list;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

spinner = findViewById(R.id.spinner);

initByXML();

}

private void initByXML() {

adapterXML = ArrayAdapter.createFromResource(this,R.array.datalist,android.R.layout.simple_list_item_1);

spinner.setAdapter(adapterXML);

}

}

Spinner属性entries:放这个Spinner所要显示的一系列数据,如显示之前在res-->values-->datalist.xml

android:entries="@array/datalist"

这个方法可替换之前的initByXML();操作

因为这个方法可以不涉及adapter的实例化,但类主活动中又会频繁使用adapter,如果adapter不实例化,会出现空指针异常的情况,所以,这个属性使用不是很频繁。

监听事件:

使用setOnItemSelectedListener方法,它和点击、长按的监听事件类似,但比点击、长按的方法多一个

一、adapterView中的item被选中的时候执行的方法

@Override

public void onItemSelected(AdapterView> parent, View view, int position, long id) {

}

二、未选中的时候执行的方法

@Override

public void onNothingSelected(AdapterView> parent) {

}

将Spinner选中的选项呈现到TextView:

代码:

package com.example.spinnertest;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.view.View;

import android.widget.AdapterView;

import android.widget.ArrayAdapter;

import android.widget.Spinner;

import android.widget.TextView;

import java.util.ArrayList;

import java.util.List;

public class MainActivity extends AppCompatActivity {

private Spinner spinner;

// private ArrayAdapter adapter;

private ArrayAdapter adapterXML;

private List list;

private TextView tv;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

spinner = findViewById(R.id.spinner);

tv = findViewById(R.id.spinner_tv);

/// initByList();

initByXML();

//设置spinner的选中item

spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

//adapterView中的item被选中的时候执行的方法

@Override

public void onItemSelected(AdapterView> parent, View view, int position, long id) {

tv.setText(adapterXML.getItem(position));

}

//未选中的时候执行的方法

@Override

public void onNothingSelected(AdapterView> parent) {

}

});

}

private void initByXML() {

adapterXML = ArrayAdapter.createFromResource(this,R.array.datalist,android.R.layout.simple_list_item_1);

spinner.setAdapter(adapterXML);

}

//通过java代码获取list

private void initByList() {

list = new ArrayList();

for(int i=0;i<40;i++){

list.add("数据"+i);

}

}

}

布局文件:

xmlns:app="http://schemas.android.com/apk/res-auto"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

tools:context=".MainActivity">

android:id="@+id/spinner"

android:layout_width="match_parent"

android:layout_height="wrap_content">

android:id="@+id/spinner_tv"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_centerHorizontal="true"

android:layout_centerVertical="true"

android:textSize="20sp"

android:text="TextView" />

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值