我有一個選項卡式活動,其工具欄中有一個微調器。當微調器值發生變化時,我需要觸發標籤片段中的更改。Spinner監聽器更改活動
我到目前爲止通過從Fragment中獲取cropSpinner實例來實現它。然而,它不能按需要工作。我對聽衆是新的;有沒有一種方法可以在Android回調中做到這一點?
ExtensionActivity.java
public class ExtensionActivity extends AppCompatActivity {
private SectionsPageAdapter mSectionsPageAdapter;
@BindView(R.id.container) ViewPager mViewPager;
@BindView(R.id.tabs) TabLayout tabLayout;
@BindView(R.id.toolbar) Toolbar toolbar;
@BindView(R.id.spinner_nav) public Spinner cropsSpinner;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_extension);
ButterKnife.bind(this);
mSectionsPageAdapter = new SectionsPageAdapter(getFragmentManager());
setupViewPager(mViewPager);
tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);
tabLayout.setupWithViewPager(mViewPager);
}
private void setupViewPager(ViewPager viewPager){
SectionsPageAdapter adapter = new SectionsPageAdapter(getFragmentManager());
adapter.addFragment(new ExtDescFragment(),"Description");
adapter.addFragment(new ExtLandPFragment(),"Land Preparation");
viewPager.setAdapter(adapter);
}
ExtDescFragment.java
public class ExtDescFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_ext_desc, container, false);
ButterKnife.bind(this,view);
((ExtensionActivity)getActivity()).cropsSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
CROP =((ExtensionActivity)getActivity()).cp.get(position);
Log.e("CROP",CROP);
getCropInf();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
當你選擇一個cropperSpinner項時,onItemSelected()和onNothingSelected()會被調用嗎? – nhoxbypass
項目得到選擇,但我需要所有的片段來檢測這種變化,所以我想知道如果我可以創建一個監聽器,當微調值更改和實現它在所有的片段 –
因此,你有不同的選項卡,你有每個微調選項卡,如果您更改微調控制器內的數據,則需要它也應該反映在其他片段中。我正確嗎? –