首先在资源文件中定义字符串
- 123
- 456
- 789
- aaa
- bbb
- ccc
1.第一种根据前端的选择在后端获取传来的字符串
在布局文件中创建控件
//类中定义
Spinner spinner;
//creat方法中绑定资源
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login_constraintlayout);
spinner=findViewById(R.id.spinner);
//监听方法中可以搜索到三个,但前两个会报超时错误,所以不能用
spinner.setOnItemClickListener();
spinner.setOnClickListener();
spinner.setOnItemSelectedListenerspinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
//后两个参数分别是下标和id,一般最后一个没用
public void onItemSelected(AdapterView> adapterView, View view, int pos, long id) {
Log.d("test", "onItemSelected: "+pos+"--"+id);//获取id
Log.d("test", "onItemSelected: "+spinner.getSelectedItem().toString());//获取前端选择的项
}
@Override
public void onNothingSelected(AdapterView> adapterView) {
}
}
2.根据前端下标在后端获取值
String banji[];//定义一个数组准备绑定资源文件中的字符串
//creat中绑定资源文件
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login_constraintlayout);
banji=getResources().getStringArray(R.array.banji);
//通过索引下标获取,数组中字符串
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView> adapterView, View view, int pos, long id) {
Log.d("test", "onItemSelected: "+banji[pos]);
}
@Override
public void onNothingSelected(AdapterView> adapterView) {
}
});
}
3.Spinner动态赋值方法
基本思路
1.删除android:entries="@array/xuexiao"行
2.在类中定义spinner和适配器
//绑定 spinner=findViewById(R.id.spinner); //创建适配器,第一个参数是上下文,第二个是引用安卓内部布局,可以重写,第三个是给的数组 ArrayAdapter arrayAdapter=new ArrayAdapter(this,android.R.layout.simple_list_item_1,banji); //送入适配器 spinner.setAdapter(arrayAdapter);
基本思路
//获得一个Spinner视图 Spinner list=findbyViewid(R.id.my_list); //实现一个adapter的接口的实例,将某些数据转换为spinner视图中的选项。 ArrayAdapter adapter=new ArrayAdapter(this,layoutId,array); //调用Spinner void setAdapter(SpinnerAdapter adapter)



