- android:dropDownHorizontalOffset 设置下拉列表水平偏移的距离
- android:dropDownSelector=“@color/teal_700” 设置下拉列表 item 选中时的颜色
- android:dropDownVerticalOffset 设置下拉列表垂直偏移的距离
- android:dropDownWidth=“200dp” 设置下拉列表的宽度
- android:gravity=“center”
- android:popupBackground=“@color/teal_200” 设置下拉列表的背景,当android:spinnerMode=“dropdown” 时生效
- android:prompt=“@string/animal” 设置Spinner,弹出框的标题,需要引用values下string资源,当 android:spinnerMode="dialog"时生效
- android:spinnerMode=“dialog” 设置下拉列表的显示模式,dialog为弹出框、dropdown为下拉列表
- android:entries=“@array/animal” 设置下拉列表,引用values下创建的数组资源
public class MainActivity extends AppCompatActivity {
private Spinner mSpinner;
private StudySpinnerAdapter adapter;
private ArrayList<String> list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
initData();
initClick();
}
private void initView() {
mSpinner=findViewById(R.id.spinner);
}
private void initData() {
//自定义adapter
// list=new ArrayList<>();
// list.add("鼠mouse");
// list.add("牛cattle");
// list.add("虎tiger");
// list.add("兔rabbit");
// list.add("龙dragon");
// list.add("蛇snake");
// list.add("马horse");
// list.add("羊sheep");
// list.add("猴monkey");
// list.add("鸡chicken");
// list.add("狗dog");
// list.add("猪pig");
//
// adapter=new StudySpinnerAdapter(this,list);
// mSpinner.setAdapter(adapter);
// //代码引用资源文件
// ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
// R.array.animal, android.R.layout.simple_spinner_item);
// adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// mSpinner.setAdapter(adapter);
//本地加载
// android:entries="@array/animal"
}
private void initClick() {
mSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String clickContent=parent.getItemAtPosition(position).toString();
Log.d("test",clickContent);
Toast.makeText(MainActivity.this, clickContent, Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
}
<?xml version="1.0" encoding="utf-8"?>
<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:gravity="center"
android:orientation="vertical"
tools:context=".MainActivity">
<Spinner
android:id="@+id/spinner"
android:layout_width="300dp"
android:layout_height="80dp"
android:entries="@array/animal"
android:gravity="center"
android:popupBackground="@color/teal_200"
android:prompt="@string/animal"
android:spinnerMode="dropdown"
android:dropDownWidth="200dp"
android:dropDownSelector="@color/teal_700"/>
</RelativeLayout>
public class StudySpinnerAdapter extends BaseAdapter {
private Context mContext;
private ArrayList<String> list;
public StudySpinnerAdapter(Context mContext, ArrayList<String> list) {
this.mContext = mContext;
this.list = list;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (null == convertView) {
holder = new ViewHolder();
convertView = View.inflate(mContext, R.layout.adapter_study_spinner, null);
holder.tv = convertView.findViewById(R.id.tv_content);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
if (null != list) {
if (!TextUtils.isEmpty(list.get(position)))
holder.tv.setText(list.get(position));
}
return convertView;
}
class ViewHolder {
TextView tv;
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/tv_content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="30sp" />
</LinearLayout>
在values目录下创建arrays.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="animal">
<item>鼠mouse</item>
<item>牛cattle</item>
<item>虎tiger</item>
<item>兔rabbit</item>
<item>龙dragon</item>
<item>蛇snake</item>
<item>马horse</item>
<item>羊sheep</item>
<item>猴monkey</item>
<item>鸡chicken</item>
<item>狗dog</item>
<item>猪pig</item>
</string-array>
</resources>