xai*_*ain 37 events android spinner
我有两个触发onItemSelected事件的微调器.问题是我怎么知道哪一个触发了这样的事件?到目前为止我试过:
public void onItemSelected(AdapterView<?> parent, View view, int position, long id)
{
Log.d("form","onitemselected");
switch (view.getId()) {
case R.id.region_spinner:
Region r = (Region)sregions.getSelectedItem();
Log.d("form","regionid:" + r.id);
break;
case R.id.state_spinner:
Log.d("form","state id:");
break;
}
Run Code Online (Sandbox Code Playgroud)
但只显示第一个日志,因此交换机中没有匹配项.
xan*_*ndy 81
使用:
switch(parent.getId()) {
...
}
Run Code Online (Sandbox Code Playgroud)
相反是你需要的.在view您的参数是实际的"行"(即微调项的点击的孩子),和父是实际的"微调",你是后.
如果您在一个活动中有多个微调器并且您正在使用 onItemSelected 重写方法,请使用以下代码
override fun onItemSelected(parent: AdapterView<*>?, view: View?, position: Int, id: Long) {
if (parent!!.id == R.id.spinner_1) {
// first spinner selected
} else if (parent!!.id == R.id.spinner_2) {
// second spinner selected
}
}
Run Code Online (Sandbox Code Playgroud)
你可以使用 switch case
| 归档时间: |
|
| 查看次数: |
24570 次 |
| 最近记录: |