Kughan
Kughan

Reputation: 15

setNumstars() not working even with WRAP_CONTENT

In a map, when I touch a marker an alert box will appear to show feedback ratings from user. I used setNumstars(5) and also used a layout with WRAP_CONTENT, but I did not get the desired output as there is large number of stars.

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {

private GoogleMap mMap;
List<String> location = new ArrayList<>();
double lat, lng;
String pname,address,timing,tin;
Double deflat=13.0826802, deflng=80.2707184;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_maps);
    // Obtain the SupportMapFragment and get notified when the map is ready to be used.
    SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
            .findFragmentById(R.id.map);
    mapFragment.getMapAsync(this);
    location.addAll(patient_final.latlong);}    @Override
public void onMapReady(GoogleMap googleMap) {
    mMap = googleMap;

    for (String str : location) {
        String temp[] = str.split(",");
        lat = Double.parseDouble(temp[0]);
        lng = Double.parseDouble(temp[1]);
        pname = temp[2];
        address=temp[3];
        tin=temp[4];
        timing=temp[5];
        mMap.addMarker(new MarkerOptions().position(new LatLng(lat, lng)).title(pname+"-"+tin).snippet(address+" Timing: "+timing));
    }
    mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(deflat, deflng), 10.5f));
    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED || ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) {

        mMap.setMyLocationEnabled(true);
    }

    mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
        @Override
        public boolean onMarkerClick(Marker marker) {
            String snip[]=marker.getTitle().split("-");
            AlertDialog.Builder builder = new AlertDialog.Builder(MapsActivity.this);
             builder.setTitle("Feedback for "+snip[0]);
            builder.setMessage("Rate the shop based on your previous experience below ");

            RatingBar rating = new RatingBar(MapsActivity.this);
            rating.setNumStars(5);   //here i used only 5
            rating.setLayoutParams(new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT,FrameLayout.LayoutParams.WRAP_CONTENT));
            builder.setView(rating);
            builder.setCancelable(false);
            builder.setPositiveButton("OK", null);
            builder.show();
            return false;
        }
    });


}

}

SCreenShot

Upvotes: 0

Views: 108

Answers (1)

Techierj
Techierj

Reputation: 141

Add RatingBar in other view group parent such as given below... it will work...

mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
        @Override
        public boolean onMarkerClick(Marker marker) {
            AlertDialog.Builder builder = new AlertDialog.Builder(Main2Activity.this);
            builder.setTitle("Feedback for ");
            builder.setMessage("Rate the shop based on your previous experience below ");

            LinearLayout ll = new LinearLayout(Main2Activity.this);

            RatingBar rating = new RatingBar(Main2Activity.this);
            rating.setNumStars(5);   //here i used only 5
            rating.setLayoutParams(new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT, FrameLayout.LayoutParams.WRAP_CONTENT));
            ll.addView(rating);
            builder.setView(ll);
            builder.setCancelable(false);
            builder.setPositiveButton("OK", null);

            builder.show();
            return false;
        }
    });

Here i have added Rating Bar inside LinearLayout.

Hope this will help you.

Upvotes: 1

Related Questions