Google marker onClick не открывает пользовательский всплывающий вид - PullRequest
0 голосов
/ 20 декабря 2018

Я застрял на пару дней.Не решил мою проблему: когда я нажимаю на маркер с помощью пользовательского маркера, он не работает для обновления данных или отображения подробной информации о маркере.

Вот основное действие:

@Override
public boolean onMarkerClick(Marker marker) {

    if (marker.getTag() == null && marker.getTag() instanceof Shop) {
        shop = (Shop) marker.getTag();

    }
    mPop = new CustomPopUpWindow(MainActivity.this);
    mPop.setOnBookBatteryClick(new CustomPopUpWindow.OnBookBatteryClick() {
        @Override
        public void onClick(int shopId) {

        }
    });
    if (mPop.isShowing()) {
        mPop.updateData(shop);
    } else {
        mPop.updateData(shop);
        //mPop.showAtLocation(drawerlayout, Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL, 0, 0);
    }
  return true;
}

И этоэто пользовательское всплывающее окно:

public void updateData(Shop shop) {
        mShop = shop;
        tv_shop_name.setText(mShop.getName());
        tv_shop_open_time.setText(mShop.getOpenTime());
        tv_address.setText(mShop.getAddress());
        tv_oil_num.setText(mShop.getBatterryAvailable());
        tv_distance.setText(mShop.getDescription());
  }
 private void init() {
    // TODO Auto-generated method stub
    LayoutInflater inflater = LayoutInflater.from(mContext);

    mPopView = inflater.inflate(R.layout.custom_popup_window, null);

    tv_shop_name = (TextView) mPopView.findViewById(R.id.tv_shop_name);
    tv_shop_open_time = (TextView) mPopView.findViewById(R.id.tv_shop_open_time);
    tv_distance = (TextView) mPopView.findViewById(R.id.tv_distance);
    tv_address = (TextView) mPopView.findViewById(R.id.tv_address);

    tv_oil_num = (TextView) mPopView.findViewById(R.id.tv_oil_num);
    btn_book_battery = mPopView.findViewById(R.id.btn_book_battery);

    iv_close = (ImageView) mPopView.findViewById(R.id.iv_close);

    btn_call_shop = mPopView.findViewById(R.id.btn_call_shop);
}

Я получаю эту ошибку:

java.lang.NullPointerException
    at com.ecgo.indonesia.view.CustomPopUpWindow.updateData(CustomPopUpWindow.java:131)
    at com.ecgo.indonesia.MainActivity.onMarkerClick(MainActivity.java:482)
    at com.google.android.gms.maps.zzb.zza(Unknown Source)
    at com.google.android.gms.maps.internal.zzas.onTransact(Unknown Source)
    at android.os.Binder.transact(Binder.java:361)
...