AdapterView中不支持android – removeView(View)

前端之家收集整理的这篇文章主要介绍了AdapterView中不支持android – removeView(View)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当单击 ImageView时,我想从listView中删除某行.我的清单看起来像这样:

我想要的是当最后一个图像被点击删除该行.这是我的适配器

  1. public class UserItemAdapter extends ArrayAdapter<Photos.Record> {
  2. private ArrayList<Photos.Record> photos;
  3.  
  4. public UserItemAdapter(Context context,int textViewResourceId,ArrayList<Photos.Record> photos) {
  5. super(context,textViewResourceId,photos);
  6. this.photos = photos;
  7. }
  8.  
  9. @Override
  10. public View getView(final int position,View convertView,ViewGroup parent) {
  11. View v = convertView;
  12.  
  13.  
  14. if (v == null) {
  15. LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
  16. v = vi.inflate(R.layout.photorowlist,null);
  17. v.setClickable(true);
  18. v.setFocusable(true);
  19. }
  20.  
  21. Photos.Record user = photos.get(position);
  22. if (user != null) {
  23. TextView photo_name = (TextView) v.findViewById(R.id.photoname);
  24.  
  25. if (photo_name != null) {
  26. photo_name.setText(user.photo_name);
  27. }
  28.  
  29. }
  30. v.setOnClickListener(new OnClickListener() {
  31.  
  32. @Override
  33. public void onClick(View view) {
  34. //Toast.makeText(view.getContext(),"Clicked",Toast.LENGTH_SHORT).show();
  35.  
  36. ImageView delete_photo = (ImageView) view.findViewById(R.id.deletephoto);
  37. delete_photo.setOnClickListener(new OnClickListener(){
  38. @Override
  39. public void onClick(View v) {
  40. Toast.makeText(Photos.this,"Delete Button Clicked",Toast.LENGTH_SHORT).show();
  41. listView.removeView(v);
  42. myadapter.notifyDataSetChanged();
  43.  
  44.  
  45. }});
  46. }
  47.  
  48. });
  49.  
  50.  
  51. return v;
  52. }
  53. }
  54.  
  55. public class Record {
  56. public String photo_name;
  57.  
  58. public Record(String photo_name) {
  59. this.photo_name = photo_name;
  60. }
  61. }

我试图用这个删除行:

  1. listView.removeView(v);
  2. myadapter.notifyDataSetChanged();

我收到错误:ERROR AndroidRuntime java.lang.UnsupportedOperationException:AdapterView不支持removeView(View)

我的秘密在哪里?任何想法?

解决方法

您不必删除“查看”,而是删除照片列表中的项目.
  1. photos.remove(yourPhoto);
  2. notifyDataSetChanged();

此外,您应该使用ViewHolders,Google中有很多提示.希望这将有助于您.

猜你在找的Android相关文章