получить путь к изображению в динамической кнопке Android - PullRequest
0 голосов
/ 27 ноября 2018

Я хочу получить путь к изображению на той же кнопке, которую я нажал.Кнопки динамические.Ниже приведен мой код ниже:

for (int i = 0; i < 5; i++) {
        buttons[i] = new Button(this);
        buttons[i].setText("Choose File");
        buttons[i].setOnClickListener(this);
        buttons[i].setId(i);
        buttons[i].setOnClickListener(new View.OnC**strong text**lickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent();
                intent.addCategory(Intent.CATEGORY_OPENABLE);
                intent.setAction(Intent.ACTION_GET_CONTENT);
                intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
                intent.setType("image/*");
                startActivityForResult(Intent.createChooser(intent, "SELECT PICTURE"), PICK_IMAGE_REQUEST);
            }
        });
        linearLayout.addView(buttons[i]);
    }

Ниже приведен код для получения пути к файлу через Intent:

if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null) {
        filepath = data.getData();
        getPath(filepath);
        full_path.add(getPath(filepath));
        String path = String.valueOf(full_path);
        if(path!=null){
            final_button.setText(path);
        }
        Log.d("fullpath_new", "" + path);
    }
}
    Cursor cursor = getContentResolver().query(uri, null, null, null, null);
    cursor.moveToFirst();
    String document_id = cursor.getString(0);
    document_id = document_id.substring(document_id.lastIndexOf(":") + 1);
    Log.d("asdasdasdasdas", document_id);
    cursor.close();
    cursor = getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, null, MediaStore.Images.Media._ID + "= ?", new String[]{document_id}, null);
    cursor.moveToFirst();

    String path = (cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DATA)));
    cursor.close();
    return path;
}
    final_button = findViewById(v.getId());
  final_button.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
          Intent intent = new Intent();
          intent.addCategory(Intent.CATEGORY_OPENABLE);
          intent.setAction(Intent.ACTION_GET_CONTENT);
          intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
          intent.setType("image/*");
          startActivityForResult(Intent.createChooser(intent, "SELECT PICTURE"), PICK_IMAGE_REQUEST);
      }
  });
 }

Есть ли простой способ сделать это в виде диаманта, где кнопкигенерируется динамически?пожалуйста, помогите.

...