Ani*_*tha 0 java android gridview arraylist
有gridview,其中设置适配器名为ImageAdapter,参数为arraylist.在适配器内部有onclicklistener,在此期间从arraylist中删除一个项目,然后当我ImageAdapter.notifyDataSetChanged在gridview项目中使用此行时将被删除.现在我需要在我的活动中更改arrayList,我怎么能得到它.
这是我的代码:
public class ImageAdapter extends BaseAdapter {
Context context;
ArrayList<String> listCheck = new ArrayList<String>();
ImageAdapter adapter = this;
public ImageAdapter(Context context, ArrayList<String> list) {
this.context = context;
listCheck = list;
}
@Override
public int getCount() {
return listCheck.size();
}
@Override
public Object getItem(int arg0) {
return null;
}
@Override
public long getItemId(int arg0) {
return 0;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder121 holder;
if (convertView == null) {
convertView = LayoutInflater.from(context).inflate(
R.layout.item_gridmain, null);
holder = new ViewHolder121();
holder.imageView = (ImageView) convertView
.findViewById(R.id.img_selected_image);
holder.close = (ImageButton) convertView
.findViewById(R.id.img_btn_cancel);
convertView.setTag(holder);
}
else {
holder = (ViewHolder121) convertView.getTag();
}
holder.close.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg1) {
listCheck.remove(position);
adapter.notifyDataSetChanged();
}
}); Bitmap bm = decodeSampledBitmapFromUri(listCheck.get(position), 220,
220);
holder.imageView.setImageBitmap(bm);
return convertView;
} }
Run Code Online (Sandbox Code Playgroud)
片段代码:
ImageAdapter mainActivityAdapter = new ImageAdapter(getActivity(), ar1);
gridview_withimage.setAdapter(mainActivityAdapter);
Run Code Online (Sandbox Code Playgroud)
问题:如何将改变的arraylist从ImageAdapter更改为Fragement
如何从ImageAdapter更改arraylist到名为Fragement
创建一个方法,在ImageAdapter该方法中将返回在Adapter中用作数据源的ArrayList:
public ArrayList<String> getModifyList() {
return listCheck;
}
Run Code Online (Sandbox Code Playgroud)
getModifyList在Fragment中调用方法以使用Adapter对象获取ArrayList:
gridview_withimage.setAdapter(mainActivityAdapter);
gridview_withimage.postDelayed(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
ArrayList<String> arrNewList=mainActivityAdapter.getModifyList();
}
}, 100);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3035 次 |
| 最近记录: |