0

Я разрабатываю приложение для Android и я довольно новичок в среде Android. Я использую карту google и отбрасываю булавку. Когда пользователь выбирает контакт, кнопка, которая изначально скрыта, появляется и может быть нажата, чтобы удалить контакт на карте. Однако, когда экран вращается (и контакт остается выбранным), кнопка удаления исчезает. Как сохранить эту кнопку даже после поворота экрана? Примечание: кнопка должна отображаться только тогда, когда пользователь выбрал булавку на карте.ImageButton исчезает при изменении ориентации экрана

Вот код, я использую, чтобы установить вверх маркер щелчка слушателя:

map.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() { 
    public boolean onMarkerClick(final Marker marker) { 
     marker.showInfoWindow(); 
     currentMarker = marker; 

     deleteButton = (ImageButton) findViewById(R.id.delete_button); 
     deleteButton.setVisibility(View.VISIBLE); 

     deleteButton.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       marker.remove(); 
       deleteButton.setVisibility(View.GONE); 
      } 
     }); 
     return true; 
    } 
}); 

Я также переопределить метод onPause(), так что я могу назвать сохранить состояние MapFragment как так:

@Override 
protected void onPause() { 
    super.onPause(); 
    MapFragment mapFragment = (MapFragment) getFragmentManager() 
      .findFragmentById(R.id.map); 
    mapFragment.setRetainInstance(true); 
} 

Весь этот код работает отлично, за исключением случаев, когда я поворачиваю устройство, и кнопка исчезает, даже когда маркер остается выбранным. Каков наилучший способ сохранить эту кнопку видимой?

ответ

0

Причина, по которой не отображается, заключается в том, что после поворота устройства восстанавливается Activity; будет воссоздана вся иерархия View.

Кроме того, вы вызываете mapFragment.setRetainInstance(true) слишком поздно на жизненном цикле. Попробуйте позвонить setRetainInstance() в Activity's onCreate(). В идеале вы бы назвали setRetainInstance() внутри Fragment.

Смежные вопросы