Android官方下拉选择控件Spinner

这篇博客介绍了如何在Android应用中使用Spinner组件来创建下拉选择效果。通过展示布局代码、MainActivity的实现以及自定义字体样式的配置,详细阐述了Spinner的用法,并给出了多条可供选择的数据示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

效果图
在这里插入图片描述

布局代码:

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

 <Spinner
     android:popupBackground="#d43c3c"
     android:id="@+id/spinner1"
     android:layout_width="100dp"
     android:layout_height="wrap_content"
     android:layout_toRightOf="@+id/textView1"
     android:layout_centerHorizontal="true" />

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/spinner1"
    android:layout_alignParentLeft="true"
    android:layout_marginBottom="20dp"
    android:layout_marginLeft="16dp"
    android:textSize="20sp"
    android:text="所选城市" />

MainActivity代码:
package com.example.select;

import android.annotation.SuppressLint;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;

import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener {

private Spinner spinner;
private ArrayAdapter<CharSequence> adapter ;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    this.spinner =(Spinner) this.findViewById(R.id.spinner1);
    //两种方式给下拉列表注册适配器
    //2 :.createFromResource(content对象,xml中数组id,样式ID)
    //最后一个参数android.R.layout.simple_spinner_dropdown_item  R.layout.dropdown_stytle自己定义的一个样式
    adapter = ArrayAdapter.createFromResource(MainActivity.this,
            R.array.planets_array,R.layout.dropdown_stytle);
    //可以使用自带的android.R.layout.simple_spinner_dropdown_item  R.layout.dropdown_stytle自己定义的一个样式
    adapter.setDropDownViewResource(R.layout.dropdown_stytle);
    spinner.setAdapter(adapter);
    //注册监听器
    spinner.setOnItemSelectedListener(MainActivity.this);

}
@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;
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position,
                           long id) {
    // TODO Auto-generated method stub
    //框中的字体改变颜色
    TextView tv=(TextView)view;
    tv.setTextColor(getResources().getColor(R.color.blue));
    //获取选中了那个
    String item = (String) spinner.getItemAtPosition(position);
    Toast.makeText(MainActivity.this, "您选中了"+item+"选项", 0).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
    // TODO Auto-generated method stub

}

}

改变字体的布局dropdown_stytle:

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

在values下边的String

北京
上海
田径
北京
上海
田径
北京
上海
田径
北京
上海
田径
北京
上海
田径

下拉框中你要的选择数据有多少这里就是多少

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值