android开发中怎样获取spinner选中的内容?
1、获取选中值要通过spinner的setOnItemSelectedListener()事件来操作,根据spinner绑定值的方式的不一样,获取选中值的方式略有不同。
2、如果没有用实体层绑定数据的话,诸如通过
SimpleAdapter adapter = new SimpleAdapter(
HRInputBase_Activity.this, items, R.layout.sp_item,
new String[] { "text", "value" }, new int[] {
R.id.sp_text, R.id.sp_value });
sp_privince.setAdapter(adapter);
这种方式绑定的。获取的方式为:
TextView ProvinceTxt = (TextView) sp_privince.getSelectedView()
.findViewById(R.id.sp_value); // 得到选中的选项Id
String codeString = ProvinceTxt.getText().toString();
如果使用的是实体层的话,在setOnItemSelectedListener()事件中根据点击的索引值获取相对应的实体类,然后从实体类中获取对应得Code和Value值,相对来说,使用实体层更加的方便,代码整洁。
3、两者都使用的是Adapter数据集的绑定,主要是考察对adapter的知识,可以对这方面多学习一点。
首先了解Spinner所用到的适配器相关的参数
AdapterView parent, 表示Spinner
View view, 表示被选择的条目
int position, 表示数据的下标
long id 表示该条目在所有条目中的下标
一般来说 postion 和 id 都是相同的
理解了适配器相关的参数的意思,就很容易写出得到item的代码,
public void onItemSelected(AdapterView parent, View view, int position,
long id) {
//知道那个条目被选择啦
//1 由于数据在view上可以直接从view里面获取
/* TextView tv_city = (TextView) view.findViewById(R.id.tv_city);
String city = tv_city.getText().toString();
Toast.makeText(this, city, 1).show();*/
//2 知道数据的下标可以从数据里面直接获取
/* String city = citys[position];
Toast.makeText(this, city, 1).show();*/
//3 从Spinner身上直接获取
/* String city = (String) spinner.getSelectedItem();
Toast.makeText(this, city, 1).show();*/
//4 从adapter获取
String city = adapter.getItem(position);
Toast.makeText(this, city, 1).show();
}
广告 您可能关注的内容 |