Java 如何在Android上检测微调器是否单击打开
我有一个微调器,我想检测用户何时单击它。 当用户单击它打开时,我想调用一个端点,然后用新数据更新微调器。 但我不知道该怎么做,结果导致无限循环: 我在这里调用API:Java 如何在Android上检测微调器是否单击打开,java,android,android-spinner,Java,Android,Android Spinner,我有一个微调器,我想检测用户何时单击它。 当用户单击它打开时,我想调用一个端点,然后用新数据更新微调器。 但我不知道该怎么做,结果导致无限循环: 我在这里调用API: public View getDropDownView(int position, View convertView, ViewGroup parent) { // Call API here // Do render with old data. } 当API成功时,我调用更新: @Override public vo
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()
之外,我想不出在用户单击打开微调器之后还调用了什么。如何解决此问题?您可以在微调器上设置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,使其行为正常。我希望它对您有效 注意,不应返回false,而应返回View v.performOnClick(),使其正常工作,并且在单击微调器打开和关闭项目时,也会调用此onTouch。