我有一个选项卡式活动,其工具栏中有一个微调器。当微调器值发生变化时,我需要触发标签片段中的更改。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
项目得到选择,但我需要所有的片段来检测这种变化,所以我想知道如果我可以创建一个监听器,当微调值更改和实现它在所有的片段 –
因此,你有不同的选项卡,你有每个微调选项卡,如果您更改微调控制器内的数据,则需要它也应该反映在其他片段中。我正确吗? –