私は取り組んでgridview
います.1回のdelete button
プレスでグリッドビューから複数の選択した画像アイテムを削除するという要件があります。
削除ボタンを押すと、選択した画像を削除できるはずです。
私はたくさん試しましたが、これについてはわかりませんでした。
一度に 1 つの画像を削除できます。
これは私がしたことです。
//アクティビティ
public class ImageActivity extends Activity {
ImageAdapter iAdapter;
ArrayList<Integer>myList;
int position;
GridView gView;
boolean selected = true;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_image);
dataImage();
iAdapter = new ImageAdapter(this,myList);
gView = (GridView)findViewById(R.id.grid_view);
gView.setAdapter(iAdapter);
gView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
gView.setSelection(position);
gView.setSelected(true);
Toast.makeText(ImageActivity.this, "" + position, Toast.LENGTH_SHORT).show();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_image, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getItemId() == R.id.menu_delete)
{
if(gView.isSelected())
{
iAdapter.list.remove(iAdapter.getPosition());
iAdapter.notifyDataSetChanged();
Toast.makeText(this, "Delete" ,Toast.LENGTH_SHORT ).show();
}
}
gView.setSelected(false);
return super.onOptionsItemSelected(item);
}
public void dataImage()
{
myList = new ArrayList<Integer>();
myList.add(R.drawable.sample_1);
myList.add(R.drawable.sample_3);
myList.add(R.drawable.sample_2);
myList.add(R.drawable.sample_2);
myList.add(R.drawable.sample_1);
myList.add(R.drawable.sample_3);
myList.add(R.drawable.sample_1);
myList.add(R.drawable.sample_3);
myList.add(R.drawable.sample_2);
}
}
//アダプタ
public class ImageAdapter extends BaseAdapter{
Context context;
ArrayList<Integer> list;
int position;
ImageView imageView;
ImageActivity act;
public ImageAdapter(Context context,ArrayList<Integer>list)
{
this.list = list;
this.context = context;
act = (ImageActivity)context;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return list.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return list.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
this.position = position;
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) { // if it's not recycled, initialize some attributes
imageView = new ImageView(context);
imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(0, 5, 0, 0);
} else {
imageView = (ImageView) convertView;
}
imageView.setImageResource(list.get(position));
return imageView;
}
public int getPosition()
{
return position;
}
}
///
誰でも私を案内したり助けたりできますか。
私の要件: -
一度に複数の画像を削除する方法は、gridview
削除ボタンを押します。