내 응용 프로그램 중 하나에서 ListView
을 사용할 때 꽤 늦은 지연을 경험했습니다. 같은 시간에 문제가 자체적으로 나타 났으므로 응용 프로그램을 종료 할 때 다음 오류 메시지가 표시되기 시작했습니다. 내 장치가 뿌리되지 않기 때문에Listview lags; 캐시 파일에 문제가 있습니까?
E/libEGL(8501): error creating cache file /data/data/[my application's namespace]/cache/com.android.opengl.shaders_cache: No such file or directory (2)
, 나는 위치에 액세스 할 수없는 및 파일이 존재 손상 또는 삭제되었는지 확인 할 수있다. 문제가 무엇인지 잘 모르겠습니다. 우선, 문제가 관련 될 수 있습니까? 그것은 이상한 우연한 것처럼 보입니다. 확실하게; 뷰 홀더 패턴을 사용하여 ListView
을 최적화하고 구현하기 전에 문제가 없으므로 구현이 어려울 수 있습니다.
업데이트 요청에 따라 여기에 내 어댑터의 getView
코드가 나와 있습니다. 그것이 문제와 관련이 있다고는 생각하지 않지만 약 5 개월 동안 괜찮 았지만 전에는 문제가 없었습니다. 당신은 아마 알고있는대로
@Override
public View getView(int position, View convertView, ViewGroup parentViewGroup)
{
final PersonaViewHolder viewHolder;
final Persona persona = provider[position];
if (convertView == null)
{
convertView = LayoutInflater.from(parentViewGroup.getContext()).inflate(R.layout.list_personas, null);
viewHolder = new PersonaViewHolder(
(ImageView) convertView.findViewById(R.id.persona_icon),
(TextView) convertView.findViewById(R.id.persona_description));
convertView.setTag(viewHolder);
} else {
viewHolder = (PersonaViewHolder) convertView.getTag();
}
Bitmap icon = BitmapFactory.decodeResource(parent.getResources(), persona.getPicture());
viewHolder.setIcon(icon, 50, 50);
viewHolder.setDescription(persona.getName() + " is a " + persona.getType() + "!");
return convertView;
}
어댑터의'getView()'메소드를 게시 할 수 있습니까? – FoamyGuy
예! 내 질문을 업데이트했습니다. – Eric