
我正在制作一个联系方式.它有三个片段,scrollvIEw,它有编辑文本.此外,活动在菜单项中有一个保存按钮.我想通过单个保存按钮保存所有三个片段的数据.我的UI看起来像这样
如何从所有三个片段中提取数据到我的容器活动中.
这是我在容器活动中保存菜单项的代码
@H_404_11@ @OverrIDepublic boolean onoptionsItemSelected(MenuItem item) { switch (item.getItemID()){ case R.ID.discard : break; case R.ID.save: Personal_Details p1 = new Personal_Details(); Proffesional_Details p2 = new Proffesional_Details(); Social s = new Social(); Person p = new Person(p1.getname(),p1.getLastname(),p1.getPhone(),p1.getEmail(),p1.getdob(), p2.getCname(),p2.getTitle(),p2.getIM(),p2.getwebsite(),p2.getofficeA(), s.getNickname(),s.getIntro(),s.getFb(),s.getTwitter(),s.getInsta()); dbHelper Database = new dbHelper(this,null,null,1); Database.addPerson(p); break; } return true;}}这是我在三个相同片段之一PERSONAL_DETAILS中的代码:
@H_404_11@public class Personal_Details extends Fragment {EditText name, lastname, phoneNumber,email,dob;public Personal_Details() { // required empty public constructor}@OverrIDepublic VIEw onCreateVIEw(LayoutInflater inflater, VIEwGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment return inflater.inflate(R.layout.fragment_personal__details, container, false);}@OverrIDepublic voID onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); initialize();}private voID initialize() { name= (EditText)getActivity().findVIEwByID(R.ID.name); lastname= (EditText)getActivity().findVIEwByID(R.ID.lastname); phoneNumber= (EditText)getActivity().findVIEwByID(R.ID.phoneNumber); email= (EditText)getActivity().findVIEwByID(R.ID.emailAddress); dob= (EditText)getActivity().findVIEwByID(R.ID.dob);}public String getname(){ if(name.getText().toString()!=null) return name.getText().toString(); else return "";}public String getLastname(){ if(lastname.getText().toString()!=null) return lastname.getText().toString(); else return "";}public String getEmail(){ if(email.getText().toString()!=null) return email.getText().toString(); else return "";}public String getPhone(){ if(phoneNumber.getText().toString()!=null) return phoneNumber.getText().toString(); else return "";}public String getdob(){ if(dob.getText().toString()!=null) return dob.getText().toString(); else return "";}}如何通过保存按钮将这些片段中的信息保存到“我的容器活动”?
编辑:这是我的滚动视图适配器
`class MyAdapter扩展FragmentStatePagerAdapter {
@H_404_11@public MyAdapter(FragmentManager fm) { super(fm);}@OverrIDepublic Fragment getItem(int position) { Fragment fragment = null; switch (position){ case 0: fragment = new Personal_Details(); break; case 1: fragment = new Proffesional_Details(); break; case 2 : fragment = new Social(); break; default:break; } return fragment;}@OverrIDepublic int getCount() { return 3;}@OverrIDepublic CharSequence getPageTitle(int position) { switch (position){ case 0 : return "Personal"; case 1 : return "Professional"; case 2 : return "Social"; default:return null ; }}}`
解决方法:
您可以从FragmentStatePagerAdapter获取所有片段,并从中调用getter方法.您可以在instantiateItem方法中保存FragmentStatePagerAdapter中Fragments的引用,并在destroyItem方法中删除它们.
示例代码 –
@H_404_11@public class MyPagerAdapter extends FragmentStatePagerAdapter { SparseArray<Fragment> registeredFragments = new SparseArray<Fragment>(); public MyPagerAdapter(FragmentManager fm) { super(fm); } @OverrIDe public int getCount() { return ...; } @OverrIDe public Fragment getItem(int position) { return MyFragment.newInstance(...); } @OverrIDe public Object instantiateItem(VIEwGroup container, int position) { Fragment fragment = (Fragment) super.instantiateItem(container, position); registeredFragments.put(position, fragment); return fragment; } @OverrIDe public voID destroyItem(VIEwGroup container, int position, Object object) { registeredFragments.remove(position); super.destroyItem(container, position, object); } public List<Fragment> getAllFragments() { List<Fragment> List = new List<Fragment>(); for(int i = 0; i < sparseArray.size(); i++) { int key = sparseArray.keyAt(i); // get the object by the key. List.add(sparseArray.get(key)); } return List; }} 总结 以上是内存溢出为你收集整理的java – 从单个按钮中提取多个片段的数据全部内容,希望文章能够帮你解决java – 从单个按钮中提取多个片段的数据所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)