私のプロジェクトには2つのフラグメントがあります。両方のフラグメントにgridviewのイメージを表示します。タブ付きのアクティビティを持つ画像アダプタとビューページがあります。私はどこで間違いを犯しているのか分かりません。画像は、私がそれらを取り込む方法と同じようには見えません。今私は最初の5つのイメージがFragmentOneに表示され、残りの3つがFragmentTwoに表示されなければならない8つのイメージがあります。それでおしまい。コードは以下のとおりです。助けて!2つのフラグメント、タブ付きアクティビティ、ビューページャーでイメージのGridViewを挿入する
// This is my Image Adapter
1. public class ImageAdapter extends BaseAdapter {
public ArrayList<Drawable> allItemsResourceID; private
LayoutInflater inflater; Context context;
public ImageAdapter(Context context, ArrayList<Drawable> images) {
inflater = LayoutInflater.from(context);
this.context = context;
allItemsResourceID = images;
Log.d("Adapter", "Create Image Adapter " + allItemsResourceID.size()); } ImageAdapter(Context context) {
inflater = LayoutInflater.from(context); }
@Override public int getCount() {
return allItemsResourceID.size(); }
@Override public Object getItem(int position) {
return allItemsResourceID.get(position); }
@Override public long getItemId(int position) {
return position; }
@Override public View getView(final int position, View convertView,
ViewGroup parent) {
final ViewHolder holder;
View view = convertView;
if (view == null) {
view = inflater.inflate(R.layout.image_inflater, parent, false);
holder = new ViewHolder();
assert view != null;
holder.imageView = (ImageView) view.findViewById(R.id.ivImageInflator);
view.setTag(holder);
} else {
holder = (ViewHolder) view.getTag();
}
if (!allItemsResourceID.get(position).equals("")) {
holder.imageView.setImageDrawable(allItemsResourceID.get(position));
}
return view; } }
// This is FragmentOne (Where i want to show 1st 5 images here)
2. public class FragmentOne extends Fragment { private GridView
gridView; ArrayList<Drawable> allDrawableImages = new ArrayList<>();
private TypedArray allImages;
@Override public View onCreateView(LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
View rootView = inflater.inflate(R.layout.fragment_main, null);
getAllWidgets(rootView);
setAdapter();
return rootView; }
private void getAllWidgets(View view) {
gridView = (GridView) view.findViewById(R.id.gridViewFragment);
allImages = getResources().obtainTypedArray(R.array.all_images); }
private void setAdapter() {
for (int i = 0; i < 5; i++) {
allDrawableImages.add(allImages.getDrawable(i));
}
ImageAdapter imageAdapter = new ImageAdapter(MainActivity.getInstance(), allDrawableImages);
gridView.setAdapter(imageAdapter); } }
// This is FragmentTwo (I want to show the remaining 3 images here
)
3. public class FragmentTwo extends Fragment { private GridView
gridView; ArrayList<Drawable> allDrawableImages = new ArrayList<>();
private TypedArray allImages;
@Override public View onCreateView(LayoutInflater inflater,
ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View rootView = inflater.inflate(R.layout.fragment_main, null);
getAllWidgets(rootView);
setAdapter();
return rootView; }
private void getAllWidgets(View view) {
gridView = (GridView) view.findViewById(R.id.gridViewFragment);
allImages = getResources().obtainTypedArray(R.array.all_images); }
private void setAdapter() {
for (int i = 0; i < 3; i++) {
allDrawableImages.add(allImages.getDrawable(i));
}
ImageAdapter imageAdapter = new ImageAdapter(MainActivity.getInstance(), allDrawableImages);
gridView.setAdapter(imageAdapter); } }
これだけです。これとは別に、私のコードはViewPager、MainActivity、およびすべてのレイアウトで正しく機能しています。 これを手伝ってくれてありがとうございます。
ありがとう、私はそれをテストします – Rajashekar
これは素晴らしいです! – Rajashekar