samedi 21 octobre 2017

How to get drawable name from imageView

I have an app that create a random image when the activity opens. There are like 30 images in the random image array. The image is generated, but what I want is to write the drawable name into a textview. It looks like this:

    ImageView RImage= (ImageView) findViewById(R.id.image);
    RImage.setImageResource(generator());

    Drawable myDrawable = RImage.getDrawable();

    TextView writeID = (TextView) findViewById(R.id.idtext);
    writeID.setText(String.valueOf(generator()));
}

private int generator() {
    TypedArray imgs = getResources().obtainTypedArray(R.array.list3);
    int imgid = imgs.getResourceId(new Random().nextInt(imgs.length()), -1);
    imgs.recycle();
    return imgid;
}

Currently I receive numbers, and I cant figure out how can I convert the int to a string, or how can I use the generator to generate a string, display in the textview and then convert it to int to display it in the imageview.

I created an another activity where I can pick the image I want to see from a spinner, it simply send the selected option with string to the next activity on button press, and in the other activity i remove the .png and res/drawable/ from the string, and convert the string into an int to display the image.

   Bundle extras = getIntent().getExtras();
    String transportItemChosen = extras.getString("SpinnerValue");
    transportItemChosen = transportItemChosen.replace(".png", "");
    transportItemChosen = transportItemChosen.replace("res/drawable/", "");

    String uri = ("@drawable/" + transportItemChosen);
    int id = getResources().getIdentifier(uri, null, getPackageName());

   ImageView mImageView;
    mImageView = (ImageView) findViewById(R.id.selectedimage);
    mImageView.setImageResource(id);

So I need the generator to generate to string and then convert it to int. Thanks!




Aucun commentaire:

Enregistrer un commentaire