我正在尝试将项目加载到我的MainActivity
工具栏内的微调器中。在MainActivity
中有一个名为HomeFragment
的片段。该片段包含SlidingTabLayout
,一旦我点击不同的标签,我需要将不同的数据集加载到上述微调器。关于使用排球库将项目加载到微调器
这里是如何看起来像:
我已经实现内部MainActivity
方法将数据添加到微调:
public void addItemsToSpinner(final Collection<String> collection) {
ArrayList<String> list = new ArrayList<>();
list.addAll(collection);
CustomSpinnerAdapter spinAdapter = new CustomSpinnerAdapter(getApplicationContext(), list);
subCategories_spinner.setAdapter(spinAdapter);
subCategories_spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapter, View v, int position, long id) {
// On selecting a spinner item
String item = adapter.getItemAtPosition(position).toString();
// Showing selected spinner item
// Toast.makeText(getApplicationContext(), "Selected : " + item,
// Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
}
而且在我的HomeActivity
我有设置为OnPageChangeLister
至SlidingTabLayout
如下:
mTabs.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
if (firstScrolled) {
// Here log-cat gives me I/Position: On page scrolled - 0 which means on stating app this line executed. But data not set to the spinner.
// Log.i("Position", "On page scrolled - " + position);
volleySubCatFilter("women");
((MainActivity) getActivity()).addItemsToSpinner(subs);//debug console subs (ArrayList) size given as 0 here
firstScrolled = false;
}
}
@Override
public void onPageSelected(int position) {
if (position == 0) {
// Log.i("Position", "On page selected - " + position);
volleySubCatFilter("women");
((MainActivity) getActivity()).addItemsToSpinner(subs);
}
if (position == 1) {
// Log.i("Position", "On page selected - " + position);
volleySubCatFilter("men");
((MainActivity) getActivity()).addItemsToSpinner(subs);
}
if (position == 2) {
// Log.i("Position", "On page selected - " + position);
volleySubCatFilter("household%20goods");
((MainActivity) getActivity()).addItemsToSpinner(subs);
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
使用volleySubCatFilter("category_here");
方法我从服务器抽取数据,并且它工作正常。
我的问题是第一次加载应用程序WOMEN选项卡中选择是和,但没有数据加载到spinner.But我试着用Log.i("Position", "On page scrolled - " + position);
,一旦应用程序加载它给了我在我的日志猫I/Position: On page scrolled - 0
但数据不会加载。 调试线((MainActivity) getActivity()).addItemsToSpinner(subs)
讲述0个项目。一旦按下另一个选项卡,则开始加载属于上一个选项卡的数据。例如: - 按男子选项卡右后应用程序加载获取数据属于女子选项卡。然后我点击任何制表符开始加载数据属于WOMEN选项卡。
如果我简要说明这个问题,数据加载到微调器后面是一步 。
这将不胜感激,如果有人给我建议的方式来提前摆脱这一bug.Thanks的。
我试过了。但无法解决问题。 –