私はチュートリアルを経て、検索が、それでも私は私のアンドロイドアプリケーションでカスタムリストビューを作成するためにBaseAdapter
を拡張する場合、Androidのカスタムリストビュー
getView(int position, View convertView, ViewGroup arg2)
方法がどのように動作するかを理解することはできません。したがって私は正確に私が望むカスタムリストビューを編集できません。
このメソッドが呼び出されるタイミングとパラメータの意味を知る必要があります。
誰かが次の方法を説明できる場合は、その偉大な。あなたのコードでsetAdapter
を呼び出すときおかげ
@Override
public View getView(int position, View convertView, ViewGroup arg2)
{
ViewHolder holder;
LayoutInflater inflater = context.getLayoutInflater();
if (convertView == null)
{
convertView = inflater.inflate(R.layout.listitem_row, null);
holder = new ViewHolder();
holder.txtViewTitle = (TextView) convertView.findViewById(R.id.textView1);
holder.txtViewDescription = (TextView) convertView.findViewById(R.id.textView2);
convertView.setTag(holder);
}
else
{
holder = (ViewHolder) convertView.getTag();
}
holder.txtViewTitle.setText(title[position]);
holder.txtViewDescription.setText(description[position]);
return convertView;
}
にロードする間に何度も実行されますが、このメソッドを使用してリストビューに項目をロードすると、getView()メソッドは、表示する。私は理解できません...... – JibW
同時に、convertView = inflater.inflate(R.layout.listitem_row、null)を初めて作成した後、アイテムをロードするときに複数回実行されます。あなたはなぜ説明してくださいできますか? – JibW
@ JibW確かに、画面上で視覚的にどのくらいの行が表示されているかによって異なります。 3行だけが表示されているとします。つまり、ListViewは3つのconvertViewを表示する必要があり、スクロールすると3つが再利用されます。一度にあなたはそれをあなたの画面に表示していないからです。なぜgetViewは3回呼び出されるのでしょうか? HierarchyViewerを使用すると、ConvertViewの数についての詳細を理解するのに役立ちます。あなたの質問に答えることを願っています...私にpingをしないと...私はあなたを助けてうれしいです。 – Gopal