Java の一般論としては y_waiwai さんのご指摘通りですが、おそらく Android の ListAdapter(を実装する BaseAdapter のサブクラス)のコードだと思われるので、それについて書きます。
(ちなみに、ListAdapter は Android プログラミングの最初の難関だと思うので、がんばってマスターしてください。)
Java
1 @Override
2 public View getView(int position, View convertView, ViewGroup parent) {
3 if (convertView == null) {
4 convertView = mInflater.inflate(R.layout.abc, parent, false);
5 }
6 // position に基づいて convertView の内容を設定
7 return convertView;
8 }
ListView にはたくさん(数百とか数千とか)の項目を表示することができますが、全ての項目に対して View を作ってしまうと大変な量になって処理が重くなるだけでなく、端末に一度に表示できる量は限られているために無駄が多くなります。このため、画面に表示される分だけ View を作り、スクロール時には画面の外に出た View を新しく表示される View として使い回す、という処理が行われて、スマホの特徴である軽快なスクロール動作を実現しています。
これを実現するのが getView メソッドで、引数の convertView には最初は null、再利用時には画面から消えた View が渡されます。このため、convertView が null の場合(かつその場合だけ)には新しい View を生成し、そうでない場合は convertView そのものを返すという動作が求められます。従って、(一般的には引数の上書きは好ましくありませんが)ListAdapter の getView に関しては、むしろ積極的に引数 convertView を上書きすべきです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/16 06:07
2020/03/17 01:16
2020/03/17 01:32 編集
2020/03/17 02:32
2020/03/17 04:30