私は画像ギャラリーアプリを持っています。今は一度に1つの画像しか選択できません。しかし、私は一度に複数の画像を選択して削除できるようにしたい。私はこの問題に基づいていくつかのコードを試しましたHow to do multiselect functionality on grid view items on tap?しかし、なぜそれが動作していないのか分かりません。助言がありますか?複数のグリッドビュー項目を選択できません
PhotosActivity.java
public class PhotosActivity extends AppCompatActivity {
int int_position;
private GridView gridView;
GridViewAdapter adapter;
ArrayList<Model_images> al_menu = new ArrayList<>();
private ArrayList<Integer> mSelected = new ArrayList<Integer>();
boolean boolean_folder;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_image_gallery);
final ImageButton button1 = (ImageButton) findViewById(R.id.button1);
final ImageButton button2 = (ImageButton) findViewById(R.id.button2);
final ImageButton button3 = (ImageButton) findViewById(R.id.button3);
final ImageButton button4 = (ImageButton) findViewById(R.id.button4);
final ImageButton button5 = (ImageButton) findViewById(R.id.button5);
button1.setVisibility(View.GONE);
button2.setVisibility(View.GONE);
button3.setVisibility(View.GONE);
button4.setVisibility(View.GONE);
button5.setVisibility(View.GONE);
gridView = (GridView) findViewById(android.R.id.list);
int_position = getIntent().getIntExtra("value", 0);
adapter = new GridViewAdapter(this, al_images, int_position);
gridView.setAdapter(adapter);
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String abc = "file://" + al_images.get(int_position).getAl_imagepath().get(position);
Intent i = new Intent(getApplicationContext(), FullImageActivity.class);
i.putExtra("id", position);
i.putExtra("folderPosition", int_position);
i.putExtra("abc", abc);
startActivity(i);
}
});
gridView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, final int position, long id) {
Integer position1 = new Integer(position);
if(mSelected.contains(position1)) {
mSelected.remove(position1); // remove item from list
// update view (v) state here
// eg: remove highlight
}
else {
mSelected.add(position1); // add item to list
// update view (v) state here
// eg: add highlight
}
}
このリンクに従うことができます。これが助けてくれることを願っています[例](https://stackoverflow.com/questions/19633672/how-to-do-multiselect-functionality-on-grid-view-items-on-tap) –
その位置を別の配列リストに追加し、ユーザーが完了ボタンをクリックしたら、位置配列を反復して選択した画像を削除します。 –
私はそのリンクだけに従っている、私はそこからコードを取ったが、何とか私のために働いていない@bluedream –