私は SQL データベースを持っています。DB から、リストにアイコンを表示する必要があることを使用して名前文字列を取得します。これを行うには、2 つの方法に従いました。1 つは次のとおりです。
int id= context.getResources().getIdentifier(path + i.getIcon(),null, null);
この方法はあまり効率的ではないことがわかったので、他の手法に従いました。
try {
Class res = R.drawable.class;
Field field = res.getField(i.getIcon());
drawableId = field.getInt(null);
holder.ContactImage.setImageResource(drawableId);
}
catch (Exception e) {
Log.e("MyTag", "Failure to get drawable id.", e);
holder.ContactImage.setImageResource(R.drawable.ic_all_contacts_green);
}
ここでの問題は、DB から取得したアイコン名が Drawable フォルダーに存在しない場合があることです。そのとき、スクロールしようとすると UI が遅く感じ、上記の両方の手法を使用してみましたが、役に立ちませんでした。 .
アイコンが見つからない場合、この問題を解決するには、最初のメソッドが NULL をスローし、2 番目のメソッドが例外を表示しますが、それを行うのに時間がかかりすぎるのはなぜですか? UI の反応が鈍くなるのを防ぐ方法、効率的なテクニックはありますか?