展示下拉框的内容有两种方式,一是entries属性,写在xml文件当中,二是使用适配器。
-------entries属性实现--------
在values下new–>xml–>values xml files创建数组资源文件
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!--name== 是数组名字-->
<string-array name="ctype">
<item>全部</item>
<item>电影</item>
<item>娱乐</item>
<item>吃喝玩乐</item>
</string-array>
</resources>
<Spinner
android:id="@+id/spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
android:entries="@array/ctype"
</Spinner>
----------适配器方式------------
.xml文件
<Spinner
android:id="@+id/spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</Spinner>
activity函数
public class MainActivity extends AppCompatActivity {
String[] ctype=new String[]{"全部","电影","娱乐","吃喝玩乐"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
;
//构造适配器,选择三个参数的,(上下文环境,布局格式,数组)
final ArrayAdapter<String > arrayAdapter=new ArrayAdapter<String>
(MainActivity.this,android.R.layout.simple_spinner_item,ctype);
arrayAdapter.setDropDownViewResource(android.R.layout.simple_dropdown_item_1line);
Spinner spinner=findViewById(R.id.spinner);
spinner.setAdapter(arrayAdapter);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
/**
*
* @param adapterView 触发当前事件的spinner对象
* @param view 表示当前选中的item
* @param position 当前被选中的item的下标
* @param id 表示当前被选择item的id
*/
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int position, long id) {
String result1= ctype[position];//在数组中获得
String result2=arrayAdapter.getItem(position);//在适配器获取
String result3=adapterView.getItemAtPosition(position).toString();//从spinner获取
Toast.makeText(MainActivity.this,"result1"+result1+"result2"+result2+"result3"+result3,Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
}
}