我有一个观点寻呼机和三个选项卡像 “FragmentOne”“FragmentTwo”等片段标签viewpager问题
在每个片段(页)的片段我想设置从画廊或从camera.But图像当我在FragmentOne选项卡中设置图像(位图)时,位图也显示在其他片段中。但我想要独特的选择图像应显示在各自片段的ImageView中。
My ViewPager类看起来像。
public class MainFragment extends Fragment {
private ViewPager mViewPager;
private SlidingTabLayout mSlidingTabLayout;
// Tabs titles
private String[] tabsTitles = {"One", "Two", "Three"};
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.new_proj_frag_layout, container, false);
// ViewPager
mViewPager = (ViewPager) rootView.findViewById(R.id.viewpager);
mViewPager.setOffscreenPageLimit(3);
mViewPager.setAdapter(new ViewPagerAdapter(getChildFragmentManager(), tabsTitles));
// Sliding tab layout
mSlidingTabLayout = (SlidingTabLayout) rootView.findViewById(R.id.sliding_tabs);
mSlidingTabLayout.setViewPager(mViewPager);
return rootView;
}
FragmentOne
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.white_fragment_layout, container, false);
image_one_btn = (ImageView) rootView.findViewById(R.id.image_one_click);
image_one_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
selectImage();
}
});
return rootView;
}
private void selectImage() {
Intent i = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
getParentFragment().startActivityForResult(i, 1);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (data != null) {
Uri selectedImage = data.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getActivity().getContentResolver().query(selectedImage,filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String picturePath = cursor.getString(columnIndex);
Log.i("ImagePath:","===="+picturePath);
image_one_btn.setImageBitmap(BitmapFactory.decodeFile(picturePath));
cursor.close();
} else {
Toast.makeText(getActivity(), "Try Again!!", Toast.LENGTH_SHORT).show();
}
}
ViewPagerAdapter
public class ViewPagerAdapter extends FragmentPagerAdapter {
private String[] tabsTitles;
public ViewPagerAdapter(FragmentManager fm, String[] tabsTitles) {
super(fm);
this.tabsTitles = tabsTitles;
}
@Override
public CharSequence getPageTitle(int position) {
return tabsTitles[position];
}
@Override
public Fragment getItem(int index) {
switch(index) {
case 0:
return new ImageOneFragment();
case 1:
return new ImageTwoFragment();
case 2:
return new ImageThreeFragment();
}
return null;
}
@Override
public int getCount() {
return tabsTitles.length;
}
}
片段二代码在哪里?请你把它放在这里。 – Pinakin 2015-02-09 11:53:42
FragmentTwo代码也类似于fragmentOne代码。 – 2015-02-09 11:57:03
可以请你发布你的视图寻呼机适配器实现吗? – Pinakin 2015-02-09 11:58:11