Как показать всплывающее окно в активности карты (Fragment Activity) в Android - PullRequest
0 голосов
/ 02 февраля 2019

Я хочу показать всплывающее окно в mapsactivity, но оно показывает ошибку.поэтому помогите мне получить от этой

initiatePopupWindow(getWindow().getDecorView().getRootView());

всплывающую функцию

private void initiatePopupWindow(View view) {
    try {


        //We need to get the instance of the LayoutInflater, use the context of this activity
        LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        //Inflate the view from a predefined XML layout
        View layout = inflater.inflate(R.layout.popup_vehicle_select,
                (ViewGroup) view.findViewById(R.id.popup_element));
        car = layout.findViewById(R.id.car);
        bike = layout.findViewById(R.id.bike);

        ChangeFont changeFont = new ChangeFont();
        changeFont.overrideFonts(this, view, 1);

        pw = new PopupWindow(layout, LinearLayout.LayoutParams.MATCH_PARENT,
                LinearLayout.LayoutParams.MATCH_PARENT, true);
        // display the popup in the center
        pw.setAnimationStyle(R.style.Animation);
        pw.showAtLocation(layout, Gravity.CENTER, 0, 0);


    } catch (Exception e) {
        e.printStackTrace();
        Log.e("Popup", e.getMessage());
        Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT).show();
    }
}

Она отображается как

'Невозможно добавить окно - токен ноль недействует;ваша деятельность запущена? '

Ответы [ 2 ]

0 голосов
/ 02 февраля 2019
Replace All contexts with YourActivity.this

And YOU are showing PopUp TOO early make it through PostDelayed .. you will get it


                                new Handler().postDelayed(new Runnable() {
                                    @Override
                                    public void run() {
                                       yourPopUp();
                                    }
                                }, 1000); 
0 голосов
/ 02 февраля 2019

на маркере для уникальной идентификации каждого маркера и поиска соответствия в массиве мест.

map.setOnInfoWindowClickListener(new OnInfoWindowClickListener() {
    @Override
    public void onInfoWindowClick(Marker marker) {

        LatLng latLon = marker.getPosition();

        //Cycle through places array
        for(Place place : places){
           if (latLon.equals(place.latlng)){
                //match found!  Do something...
           }

        }
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...