Q:

Android Google Map Marker info to TextView

i would like to get my Marker info to textView, i am able to do that but it shows always only last one from JSON, any good ideas how to fix that?
My Plan was pretty easy, when user Clicks on Marker then it will make RealitveLayout "VISIBLE", it works so far, but my issue is that i gather my Markers from JSON, and then ads them to the MAP, 
There is OnClick listener what makes the trick
(Sets layout VISIBLE and sends info to TextView what is on that Layout.)
IT works, but it only takes the last object from JSON array.
 public GoogleMap.OnInfoWindowClickListener getInfoWindowClickListener()
{
    return new GoogleMap.OnInfoWindowClickListener()
    {
        @Override
        public void onInfoWindowClick(Marker marker)
        {
            RelativeLayout rl1 = (RelativeLayout) findViewById(R.id.popup); 
            rl1.setVisibility(View.VISIBLE); // Set the View to VISIBLE

            //Title to TextView (also "Score" info)
            TextView pealkiriTextView = (TextView) findViewById(R.id.pealkiriTextView);
            pealkiriTextView.setText(title + " (" + punkte + " punkti)");

            //Description to TextView
            TextView pKirlejdusTextView = (TextView) findViewById(R.id.pKirlejdusTextView);
            pKirlejdusTextView.setText(kirjeldus);

        }
    };}

Thats how i get info from JSON (from URL)
private void getMarkers() {
    StringRequest strReq = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {

        @Override
        public void onResponse(String response) {
            Log.e("Response: ", response.toString());

            try {
                JSONObject jObj = new JSONObject(response);
                String getObject = jObj.getString("punktid");
                JSONArray jsonArray = new JSONArray(getObject);

                for (int i = 0; i < jsonArray.length(); i++) {
                    JSONObject jsonObject = jsonArray.getJSONObject(i);
                    nr = jsonObject.getString(NR);
                    title = jsonObject.getString(TITLE);
                    kirjeldus = jsonObject.getString(KIRJELDUS);
                    vahend = jsonObject.getString(VAHEND);
                    punkte = jsonObject.getString(PUNKTE);
                    latLng = new LatLng(Double.parseDouble(jsonObject.getString(LAT)), Double.parseDouble(jsonObject.getString(LNG)));

                    // Anname addMarkerile väärtused
                    addMarker(latLng, title, kirjeldus,punkte, nr, vahend);
                }
            } catch (JSONException e) {
                // JSON error
                e.printStackTrace();
            }
        }
    }, new Response.ErrorListener() {

        @Override
        public void onErrorResponse(VolleyError error) {
            Log.e("Error: ", error.getMessage());
            Toast.makeText(kaart.this, error.getMessage(), Toast.LENGTH_LONG).show();
        }
    });

And ADDing Markers to Map : 
    private void addMarker(LatLng latlng,final String nr, final String title, final String kirjeldus,final String punkte, final String vahend) {
    markerOptions.position(latlng);
    //markerOptions.title(title +"(" + punkte +"p)");
    markerOptions.title(punkte +" Punkti");
    //markerOptions.snippet(kirjeldus);
    if (vahend.equalsIgnoreCase("auto")) { markerOptions.icon(BitmapDescriptorFactory.fromResource(R.mipmap.auto));
    } else { markerOptions.icon(BitmapDescriptorFactory.fromResource(R.mipmap.jala)); }
    gMap.addMarker(markerOptions);} //addMarker

A:

To get the Google map Marker information here i created one custom info window
public class CustomWindowInfo implements GoogleMap.InfoWindowAdapter {

// Use default InfoWindow frame
@Override
public View getInfoWindow(Marker arg0) {
    return null;
}

// Defines the contents of the InfoWindow
@Override
public View getInfoContents(Marker arg0) {

    // Getting view from the layout file info_window_layout
    View v = getLayoutInflater().inflate(R.layout.custom_map_window, null);
    TextView texttitle = (TextView) v.findViewById(R.id.texttitle);
    TextView text_description = (TextView) v.findViewById(R.id.text_description);

    texttitle.setText(arg0.getTitle());

    // Setting the location to the textview
    text_description.setText(arg0.getSnippet());
    return v;

}}

Setting a custom info window for the google map
googleMap.setInfoWindowAdapter(new CustomWindowInfo());
googleMap.setOnInfoWindowClickListener(listenerInfowindow_click);

and to get the inforamtion of marker  on click
public GoogleMap.OnInfoWindowClickListener listenerInfowindow_click = new GoogleMap.OnInfoWindowClickListener() {

        @Override
        public void onInfoWindowClick(final Marker marker) {
            AlertDialog.Builder builder = new AlertDialog.Builder(MapActivity.this);
            builder.setTitle("");
            builder.setMessage(dialog_mas);
            builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {

                    if (InterNet.isConnectedToInternet()) {
                    Geocoder selected_place_geocoder = new Geocoder(MapActivity.this);
                    address =  selected_place_geocoder.getFromLocationName(marker.getSnippet(), 1);

                    } else {
                        Toast.makeText(MapActivity.this,InterNet.interNetMsg, Toast.LENGTH_LONG).show();
                    }
                    dialog.cancel();
                }
            });
            builder.setNegativeButton("N0", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.cancel();

                }
            });
            builder.show();

        }
    };

