我正在實施刪除與Android網格視圖中的圖像複選框。我已經完成刪除選中的圖像,但複選框顯示爲原樣。如何刪除複選框也從grid.Can有人幫我解決這個問題的複選框。
這是Adapter類我getView()methid如何從Android Gridview中刪除複選框
*
@Override
public View getView(final int position, View convertView, ViewGroup parent)
{
ViewHolder holder;
if (convertView == null)
{
holder = new ViewHolder();
convertView = mInflater.inflate(R.layout.add_post_grid_item_layout, parent , false);
holder.image = (ImageView) convertView.findViewById(R.id.image);
holder.checkbox = (CheckBox) convertView.findViewById(R.id.itemCheckBox);
convertView.setTag(holder);
}
else
{
holder = (ViewHolder) convertView.getTag();
}
Bitmap myBitmap = BitmapFactory.decodeFile(fileName.get(position));
holder.image.setImageBitmap(myBitmap);
holder.checkbox.setTag(position);
holder.checkbox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
mSparseBooleanArray.put((Integer) buttonView.getTag(), isChecked);
int pos = (Integer) buttonView.getTag();
if (!buttonView.isChecked()) {
picsName.remove((String) fileName.get(pos));
} else if (buttonView.isChecked()) {
if (!picsName.contains((String) fileName.get(pos))) {
picsName.add((String) fileName.get(pos));
}
}
notifyDataSetChanged();
}
});
return convertView;
}
在Activity類此刪除按鈕
imgDeleteImagesFromGallery.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
int len = selectedItems.size() - 1;
for (int i = len; i > 1; i--)
{
fileName.remove(i);
fileName.remove((Integer) vh.checkbox.getTag(i));
if(checks.get(i)==1){
checks.remove(i);
i--;
}
}
gridAdapter.notifyDataSetChanged();
gridView.clearChoices();
}
});
這是行xml文件
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="1dp"
android:background="@android:color/transparent">
<ImageView
android:id="@+id/image"
android:layout_width="115dp"
android:layout_height="110dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:scaleType="fitXY" />
<CheckBox
android:id="@+id/itemCheckBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true" />
</RelativeLayout>
你可以上傳你的行xml嗎?還要上傳與您的問題的屏幕截圖... – user320676
@ user320676:嗨,感謝您的回覆。我editrd我的帖子,並上傳與問題的截圖。 –
把你的setOnCheckedChangeListener代碼放在裏面if(convertView == null){convertView.setTag(holder); }並嘗試 – user320676