나는 목록보기를 사용하고 있으며 이미지 개수가 많은 캠 이미지를 표시하고 있습니다. 내 코드는 다음과 같습니다.Android : 목록보기 문제의 이미지 가시성 설정
TextView imageCountview = (TextView) row.findViewById(R.id.TextViewImageCount); ;
//checking whether count is zero, if so hiding both image and count
if(ImageCount.equals("0")){
imageCountview.setVisibility(8);
ImageView camimage = (ImageView) row.findViewById(R.id.imageViewlistcam);
camimage.setVisibility(8);
}
else{
imageCountview.setText(ImageCount);
}
이제 목록이로드되면 모든 문제가 해결되며 개수가 0보다 큰 경우 이미지가 표시됩니다. 이제는 스크롤 막대를 만들 때까지 계속 목록보기에 더 많은 요소를 추가했습니다. 문제가 지금 시작됩니다
위로 스크롤하면 목록 요소의 일부가 예상되는 동작 뒤에 화면으로 표시됩니다. 아래로 스크롤하면 캠 이미지가 이전에 표시되었지만 사라집니다. 목록에서 매우 특이한 행동입니다. 나는 여기서 무엇을 missign합니까? 누군가 나를 도울 수 있습니까?
미리 감사드립니다. 부모 있었던 파라미터에
내 어댑터
class MyIncidentAdapter extends ArrayAdapter{
public MyIncidentAdapter(Context context, int textViewResourceId,
ArrayList<String> dbResults) {
super(context, textViewResourceId, dbResults);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
if (row == null) {
LayoutInflater inflater = getLayoutInflater();
row = inflater.inflate(R.layout.row_incident, parent, false);
}
TextView incidentID = (TextView) row.findViewById(R.id.label_incident);
incidentID.setText((db_results.get(position)).toString());
String Final = null;
String ImageCount = "0";
String VideoCount = "0";
String RecordingCount="0";
//getting image count
SQLiteDatabase db10;
db10 = openOrCreateDatabase("filestore", MODE_PRIVATE, null);
Cursor cursor = db10.rawQuery(
"SELECT count(urls) as numbers FROM files where incident_id='"+((db_results.get(position)).toString())+"'", null);
while (cursor.moveToNext()) {
ImageCount = String.valueOf(cursor.getString(cursor
.getColumnIndex("numbers")));
}
cursor.close();
//getting video
Cursor cursor1 = db10.rawQuery(
"SELECT count(urls) as numbers FROM videos where incident_id='"+((db_results.get(position)).toString())+"'", null);
while (cursor1.moveToNext()) {
VideoCount = String.valueOf(cursor1.getString(cursor1
.getColumnIndex("numbers")));
}
cursor1.close();
//getting audio count
Cursor cursor11 = db10.rawQuery(
"SELECT count(urls) as numbers FROM audios where incident_id='"+((db_results.get(position)).toString())+"'", null);
while (cursor11.moveToNext()) {
RecordingCount = String.valueOf(cursor11.getString(cursor11
.getColumnIndex("numbers")));
}
cursor11.close();
//Final = "Image:"+ImageCount+ " Video:"+VideoCount+ " Audio:"+RecordingCount;
//TextView countinfo = (TextView) row.findViewById(R.id.textViewCount);
//countinfo.setText(Final);
TextView imageCountview = (TextView) row.findViewById(R.id.TextViewImageCount); ;
//checking whether count is zero, if so hiding both image and count
if(ImageCount.equals("0")){
imageCountview.setVisibility(8);
ImageView camimage = (ImageView) row.findViewById(R.id.imageViewlistcam);
camimage.setVisibility(8);
}
else{
imageCountview.setText(ImageCount);
}
TextView videoCountview = (TextView) row.findViewById(R.id.textViewVideoCount);
if(VideoCount.equals("0")){
videoCountview.setVisibility(8);
ImageView imgvid = (ImageView)row.findViewById(R.id.imageViewlistvid);
imgvid.setVisibility(8);
}
else{
videoCountview.setText(VideoCount);
}
TextView audioCountview = (TextView) row.findViewById(R.id.textViewAudioCount);
if(RecordingCount.equals("0")){
audioCountview.setVisibility(8);
ImageView audioimg = (ImageView)row.findViewById(R.id.imageViewlistaud);
audioimg.setVisibility(8);
}
else{
audioCountview.setText(RecordingCount);
}
String InsDate=null;
Cursor cursor111 = db10.rawQuery(
"SELECT incident_date FROM incident where incident_id='"+((db_results.get(position)).toString())+"'", null);
while (cursor111.moveToNext()) {
InsDate = String.valueOf(cursor111.getString(cursor111
.getColumnIndex("incident_date")));
}
cursor111.close();
TextView incidentDate = (TextView) row.findViewById(R.id.label_date);
incidentDate.setText(InsDate);
Cursor cursor1111 = db10.rawQuery(
"SELECT description FROM incident where incident_id='"+((db_results.get(position)).toString())+"'", null);
while (cursor1111.moveToNext()) {
description = String.valueOf(cursor1111.getString(cursor1111
.getColumnIndex("description")));
}
cursor1111.close();
db10.close();
TextView incidentDesc = (TextView) row.findViewById(R.id.label_des);
if(description.equals(" ")){
incidentDesc.setVisibility(8);
}
else{
incidentDesc.setText(description.trim());
}
return row;
}
은 어댑터의 getView를 볼 필요가 있습니다. – Ronnie
어댑터를 업데이트했습니다. 지금 확인하십시오. –