自定义下拉列表框:
下拉框提示信息,,prompt,,必须是dialog才可使用,添加下面style,,必须用字符串资源
style="@android:style/Widget.Spinner"
android:prompt="@string/tishi"
android:spinnerMode=“dialog或者dropdown”对话框/下拉框
1,在activity_main.xml文件中定义一个spinner。。
<FrameLayout 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:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:background="@color/white"
tools:context=".MainActivity">
<Spinner
android:layout_marginTop="30dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:spinnerMode="dropdown"
android:id="@+id/spinner"
android:padding="10dp"
android:background="@drawable/selector_test"
/>
</FrameLayout>
2,在和activity_main.xml同级目录下,定义一个布局文件用来显示spinner的样式。
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:textSize="18sp"
android:paddingLeft="10dp"
android:textColor="@color/blue"
/>
3,在和activity_main.xml同级目录下,定义一个布局文件用来显示spinner下拉列表框的样式。
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/text2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:textSize="18sp"
android:paddingLeft="10dp"
android:textColor="@color/red"
android:background="@drawable/selector_spinner" //用了一个选择器,当被点击时样式和不被点击时样式不同
android:layout_marginTop="5dp"
android:padding="10dp"
/>
4,在java文件中定义
package com.example.syx.spinner;
import android.annotation.TargetApi;
import android.os.Build;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.Spinner;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity{
private Spinner spinner;
private ArrayAdapter<String> adapter;
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
spinner =(Spinner)findViewById(R.id.spinner);
//定义字符串用来显示下拉框的信息
String[] arr=new String[]{"山东","江苏","浙江","河北"};
//适配器,第一个参数是当前类,,,第二个参数是定义过的spinner的布局样式(也就是第二步骤里的),,第三个参数是字符串数组
adapter = new ArrayAdapter(this,R.layout.spinner_item,arr);
//setDropDownViewResource(),设置下拉框的样式,,,也就是第三步骤里创建的样式。
adapter.setDropDownViewResource(R.layout.spinner_item_one);
//设置下拉框的垂直偏移量
spinner.setDropDownVerticalOffset(100);
//spinner.setDropDownWidth(800);
spinner.setAdapter(adapter);
//给spinner设置一个选择的事件监听,
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
//获取数据并转化为字符串
String name = adapter.getItem((int) id).toString();
//Toast提示选择的什么
Toast.makeText(MainActivity.this, "你选择的是" + name, Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
}