在标记为重复之前,请阅读帖子。
我在我的应用中使用Spinner
,并使用onCreate
方法从服务器填充数据。
如果onCreate
用户在互联网连接期间,一切正常
在其他情况下,Spinner
有一个项目"选择一个项目"
我需要一个解决方案来在运行时再次加载微调器的数据
(如果在每次用户点击微调器时都没有加载onCreate()
)
理想的解决方案就像onFocusChaneListenner
- 在这里我可以在用户点击微调器时从服务器上传数据。
但不幸的是,它似乎不起作用,我看不出这个选择。
Spinner spinner = (Spinner) rootView.findViewById(R.id.spinner);
spinner.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
// here would would be great to update when receive focus
}
});
我想到了custom Spinner
的实现,当Spinner有一个或零个迭代时,onItemSelected
将被调用。
但是这里用户必须选择一些东西(或什么都没有),然后再次返回它以查看更新的数据,因此它看起来并不理想。
我是否应该检查数据是否在一段时间后被加载而不依赖于用户与Spinner的交互?
答案 0 :(得分:2)
如果要在Spinner Interaction上加载数据,请使用OnTouchListener
。
Spinner spinner = (Spinner) rootView.findViewById(R.id.spinner);
spinner.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_UP){
// load data here
}
return false;
}
});