Gab*_*lle 11 android listview adapter android-adapterview
我想在单击ImageView时从listView中删除某一行.我的listview看起来像这样:

我希望在单击最后一个图像时删除该行.这是我的适配器:
public class UserItemAdapter extends ArrayAdapter<Photos.Record> {
private ArrayList<Photos.Record> photos;
public UserItemAdapter(Context context, int textViewResourceId, ArrayList<Photos.Record> photos) {
super(context, textViewResourceId, photos);
this.photos = photos;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.photorowlist, null);
v.setClickable(true);
v.setFocusable(true);
}
Photos.Record user = photos.get(position);
if (user != null) {
TextView photo_name = (TextView) v.findViewById(R.id.photoname);
if (photo_name != null) {
photo_name.setText(user.photo_name);
}
}
v.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
//Toast.makeText(view.getContext(), "Clicked", Toast.LENGTH_SHORT).show();
ImageView delete_photo = (ImageView) view.findViewById(R.id.deletephoto);
delete_photo.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
Toast.makeText(Photos.this, "Delete Button Clicked", Toast.LENGTH_SHORT).show();
listView.removeView(v);
myadapter.notifyDataSetChanged();
}});
}
});
return v;
}
}
public class Record {
public String photo_name;
public Record(String photo_name) {
this.photo_name = photo_name;
}
}
Run Code Online (Sandbox Code Playgroud)
我试图用这个删除行:
listView.removeView(v);
myadapter.notifyDataSetChanged();
Run Code Online (Sandbox Code Playgroud)
我收到错误: ERROR AndroidRuntime java.lang.UnsupportedOperationException: removeView(View) is not supported in AdapterView
我的mystake在哪里?任何的想法?
AMe*_*rle 24
您不必删除View照片列表中的删除项目.
photos.remove(yourPhoto);
notifyDataSetChanged();
Run Code Online (Sandbox Code Playgroud)
而且,你应该使用ViewHolders,谷歌有很多东西.希望这会帮助你.
mac*_*Jun 10
在onItemClick(AdapterView parent,View view,int position,long id)中使用
parent.removeViewInLayout(view);
代替
parent.removeViewAt(position);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22802 次 |
| 最近记录: |