我有一个微调器,我想检测用户何时点击它。 当用户单击它打开时,我想调用端点,然后用新数据更新微调器。 但我无法弄清楚如何做到这一点并导致无限循环:
我在这里调用API:
public View getDropDownView(int position, View convertView, ViewGroup parent) {
// Call API here
// Do render with old data.
}
当API成功时,我调用更新:
@Override
public void onSuccess(final Response response) {
Helper.update(...);
}
public void update(...) {
...
adapter.setItems(newData);
adapter.notifyDataSetChanged();
}
然后再次触发getDropDownView()
。用户点击打开除getDropDownView()
之外的微调器后,我无法弄清楚还有其他调用。我该如何解决这个问题?
答案 0 :(得分:8)
您可以在Spinner上设置Touch-listener来检测点击。
findViewById(R.id.spinner).setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
Toast.makeText(MainActivity.this,"CallAPI",Toast.LENGTH_SHORT).show();
return false;
}
});
从onTouch返回False表现正常。我希望它对你有用。