-1

Android開発初心者です。LazyAdapter を使用して ListView に複数の画像を読み込もうとしています。drawable フォルダーに画像を保存します。image1.jpg、image2.jpg、image3.jpg、image4.jpg の 4 つの画像があります。ただし、ListView では、image1.jpg、image2.jpg、image1.jpg、image2.jpg の順序で表示されます。メソッド getItemId() および getItem() を変更しようとしましたが、ListView にすべての画像をロードするのに役立たず、まだ 2 つしか表示されません。私は自分が間違っていることを理解できません。私のコードを参照してください

public class MainActivityFragment extends Fragment {

CustomAdapter imagesAdapter;

public MainActivityFragment() {
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    int[] images = {R.drawable.image1,
            R.drawable.image2,
            R.drawable.image3,
            R.drawable.image4};

    imagesAdapter = new CustomAdapter(getActivity(), images);

    View rootView =  inflater.inflate(R.layout.fragment_main, container, false);
    ListView listView = (ListView) rootView.findViewById(R.id.listView);
    listView.setAdapter(imagesAdapter);

    return rootView;
}
}

ここに私のLazyAdapterがあります:

public class CustomAdapter extends BaseAdapter {

LayoutInflater inflater;
int[] imagePaths;

public CustomAdapter(Activity activity, int[] data) {
    imagePaths = data;
    inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}

@Override
public int getCount() {
    return imagePaths.length;
}

@Override
public Object getItem(int position) {
    return position;
}

@Override
public long getItemId(int position) {
    return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {

    View view = convertView;

    if(view == null) {

        view = inflater.inflate(R.layout.list_view_item, parent, false);
        ImageView imageView = (ImageView) view.findViewById(R.id.imageView);
        imageView.setImageResource(imagePaths[position]);
    }

    return view;
}

}

ご意見をお聞かせください。コードを正しく動作させるにはどうすればよいですか (つまり、2 つだけでなく、ListView にすべての画像を表示するには)?

4

1 に答える 1