Olá,
No curso em si não há nenhuma aula específica sobre isso mas o que eu quis dizer é que você só precisa reutilizar o Fragment
que você já criou anteriormente.
No onCreate(...)
da MapaActivity
você deve ter um código parecido com o abaixo:
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.mapa, new MapaFragment());
Antes do replace
, vamos criar o MapaFragment
e guardá-lo num atributo da classe:
public class MapaActivity extends AppCompatActivity {
// outros atributos
private MapaFragment mapaFragment;
protected void onCreate(Bundle bundle) {
// código
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
mapaFragment = new MapaFragment();
ft.replace(R.id.mapa, mapaFragment);
ft.commit();
}
// outros métodos
}
Agora nesse código:
btnaddmarker.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
MapaFragment marcar = new MapaFragment();
marcar.criaMarcadorNaPosicaoAtual();
}
});
Você não precisa instanciar mais o MapaFragment
, você pode utilizar o atributo que guardamos antes:
btnaddmarker.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mapaFragment.criaMarcadorNaPosicaoAtual();
}
});
Faça o teste e veja se funciona!