我正在嘗試將項目加載到我的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的。
我試過了。但無法解決問題。 –