J'ai une application dans laquelle j'ai une liste personnaliséeView, en cliquant sur un élément de la liste, un DialogFramgent est montré. Maintenant, ce que je veux faire est de définir l'imageView que j'ai dans ce DialogFramgent à une image dans le stockage externe. Je sais que je peux régler la source du imageView en tant que tel:Android - définir imageView à l'intérieur de DialogFragment
File imgFile = new File(“/sdcard/Images/test_image.jpg”);
if(imgFile.exists()){
Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
ImageView myImage = (ImageView) findViewById(R.id.imageViewItem);
myImage.setImageBitmap(myBitmap);
}
Cependant, je ne pouvais pas initialiser ma variable ImageView correctement, car findViewById donne une erreur: `La méthode findViewById (int) est non défini pour le type ItemDialog .
Voici la partie dans mon listView personnalisé onClickLisenter où j'appelle mon DialogFragment:
resultListView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> a, final View v, final int position, long id) {
positionSelected = position;
SearchResultListViewItem selectedRow = results.get(position);
String selectedItem = selectedRow.getItemName();
itemBarcode = selectedRow.getBarcode();
itemListDB.open();
ItemDialog itemDialog = new ItemDialog();
itemDialog.itemName = selectedItem;
itemDialog.brandName = itemListDB.getBrandFromItemBarcode(itemBarcode);
itemDialog.UOMName = itemListDB.getUOMFromItemBarcode(itemBarcode);
itemDialog.priceName = itemListDB.getPriceFromItemBarcode(itemBarcode);
itemDialog.discountName = itemListDB.getDiscountFromItemBarcode(itemBarcode);
itemDialog.mListener = SearchResult.this;
itemDialog.qtyFromList = qtyInput.get(position);
itemDialog.discFromList = qtyInput.get(position);
itemListDB.close();
itemDialog.show(getFragmentManager(), "");
}
});
et voici ma classe ItemDialog:
public class ItemDialog extends DialogFragment implements OnClickListener{
//my variables go over here
public interface onSubmitListener {
void setOnSubmitListener(String qty, String disc);
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final Dialog dialog = new Dialog(getActivity());
dialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
dialog.setContentView(R.layout.fragment_item_dialog);
setStyle(DialogFragment.STYLE_NORMAL, R.style.MyDialog);
File imgFile = new File("/sdcard/Images/test_image.png");
if(imgFile.exists()){
Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
ImageView myImage = (ImageView) findViewById(R.id.imageViewItem);
myImage.setImageBitmap(myBitmap);
}
dialog.setTitle("Item Details");
dialog.show();
//I set more variables here
return dialog;
}
}
Alors, est-ce que quelqu'un a une idée sur la façon de définir l'image source d'un imageView qui est dans un DialogFragment? Je suis coincé ici et franchement, je n'ai aucune idée de la façon de procéder et je serai vraiment reconnaissant si quelqu'un peut m'aider.
Merci.
Êtes-vous sûr que votre image existe dans le chemin/sdcard/Images? –
Euh oui. Le problème, comme je l'ai dit, est qu'il y a un soulignement rouge dans findViweById quand j'essaie de chercher ImageView. – Razgriz