此文,仅做为个人学习Android,记录成长以及方便复习!
首先是设置UI界面
纯文本模式,通过ArrayAdapter适配器实现!!!
1.activity_main.xml
定义一个Spinner 和一个 TextView
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<Spinner
android:id="@+id/spinner"
android:layout_width="100dp"
android:layout_height="50dp"/>
<TextView
android:id="@+id/tv1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="#711"
android:layout_below ="@+id/spinner"
/>
</RelativeLayout>
接下来是Activity的内容
MainActivity.java
package com.rui.spinnerdemo;
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;
//加载监听事件OnItemClickListener
public class MainActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener{
private Spinner spinner;//定义Spinner
private TextView tv1;//定义TextView
private ArrayAdapter<String> arr_adapter;//定义适配器
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//实例化Spinner,TextView
spinner = findViewById(R.id.spinner);
tv1 = findViewById(R.id.tv1);
//数据源
List<String> list = new ArrayList<>();
list.add("海贼王");
list.add("火影");
list.add("死神");
list.add("其他");
//添加ArrayAdapter适配器,参数二调用系统预设布局文件
arr_adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,list);
//Adapter设置一个下拉列表样式(上一步只是一个下拉列表框(不包括下拉菜单),这里要设置下拉菜单的样式)
arr_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
//设置tv1默认显示的语句!
tv1.setText("你觉得最好看的动漫是:海贼王");
//Spinner加载适配器
spinner.setAdapter(arr_adapter);
//Spinner加载监听事件
spinner.setOnItemSelectedListener(this);
}
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
//从适配器里面获取选择的文本,当然也可以从list中获取 list.get[i]
//以上方法中的int i,指的是选择了第几项
String name = arr_adapter.getItem(i);
tv1.setText("你觉得最好看的动漫是:"+name);
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
}
启动之后
弹框之后
PS:
Spinner配置中
android:spinnerMode="dialog"可以设置模式,效果弹窗如图,填写“dropdown”或者不填则默认是下拉列表!
<Spinner
android:id="@+id/spinner"
android:layout_width="100dp"
android:layout_height="50dp"
android:spinnerMode="dialog"/>