Pessoal,
tenho uma tela que é um FragmentActivity onde é apresentado algum dados e um mapa com o endereço. O que aconteceu foi que depois de extender a classe FragmentActivity e alterar o tema para o MaterialDesign do Google menu menu bar sumiu.
Ou seja o medodo onCreateOptionsMenu() não é mais carregado.
Alguem tem uma ideia do que seja ? e como resolver ?
identar texto pre-formatado em 4 espaços
public class ViewResourceActivity extends FragmentActivity implements OnMapReadyCallback {
private GoogleMap mMap;
private ListView mainListViewResource;
private ArrayAdapter<String> listAdapterViewResource;
private boolean isFavourited;
private Long posicaoSelecionada;
private Prestador prestador;
@Override
public void onBackPressed() {
finish();
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_view_resource);
prestador = (Prestador) IntentHelper.getObjectForKey("prestador");
loadDataResource();
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_view_resource, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
//Se for o botão compartilhar
if (id == R.id.action_share) {
setShareIntent();
return true;
}
// Se for o botão favoritar
if ((id == R.id.favourites_add_item && !isFavourited) || (id == R.id.favourites_remove_item && isFavourited)) {
AlertDialog.Builder builder = new AlertDialog.Builder(ViewResourceActivity.this)
.setTitle("Teste")
.setMessage("Vamos favoritar alguma coisa!!")
.setPositiveButton("OK", null);
builder.create().show();
}
return super.onOptionsItemSelected(item);
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
MenuItem addItem = menu.findItem(R.id.favourites_add_item);
addItem.setVisible(!isFavourited);
MenuItem removeItem = menu.findItem(R.id.favourites_remove_item);
removeItem.setVisible(isFavourited);
return true;
}
private void setShareIntent() {
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, "Teste Guia Médico Mobile NATIVO");
sendIntent.setType("text/plain");
startActivity(sendIntent);
}
public void loadDataResource() {
// Nome do Prestador
final TextView resource_name = (TextView) findViewById(R.id.resource_name);
resource_name.setText(prestador.getNome() + " - " + prestador.getSgConselho() + " " + prestador.getNrCRM());
List<String> lista = new ArrayList<>();
// Especialidades / Serviços
for (int i = 0; i < prestador.getEspecialidadesPrestadores().size(); i++) {
EspecialidadesPrestadores especialidadePrestadores = prestador.getEspecialidadesPrestadores().get(i);
final TextView resource_especialidades = (TextView) findViewById(R.id.resource_especialidades);
resource_especialidades.append(especialidadePrestadores.getNm_espec() + " | ");
}
// Endereço
for (int i = 0; i < prestador.getEnderecosGruposServicos().size(); i++) {
EnderecosGruposServicos enderecosGruposServicos = prestador.getEnderecosGruposServicos().get(i);
String text = enderecosGruposServicos.getDs_end() + "," + enderecosGruposServicos.getNr_end() + " - " + enderecosGruposServicos.getDs_bairro() + "\n\n";
lista.add(text);
}
listAdapterViewResource = new ArrayAdapter<>(ViewResourceActivity.this, R.layout.simplerow, lista);
mainListViewResource = (ListView) findViewById(R.id.mainListViewResource);
mainListViewResource.setAdapter(listAdapterViewResource);
mainListViewResource.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> adapterView, View view, int id, long position) {
setPosicaoSelecionada(position);
return false;
}
});
mainListViewResource.setOnCreateContextMenuListener(new View.OnCreateContextMenuListener() {
public void onCreateContextMenu(ContextMenu menu, View view, ContextMenu.ContextMenuInfo menuInfo) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.context_menu_view_resource, menu);
}
});
}
@Override
public boolean onContextItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_map:
openMap();
return true;
case R.id.action_fone:
sendCall();
return true;
default:
return super.onContextItemSelected(item);
}
}
public void openMap() {
Intent intent = new Intent(ViewResourceActivity.this, MapActivity.class);
prestador.setPosicaoSelecionada(posicaoSelecionada.intValue());
IntentHelper.addObjectForKey(prestador, "prestador");
startActivity(intent);
}
public void sendCall() {
Uri uri = Uri.parse("tel:4866666666");
Intent intent = new Intent(Intent.ACTION_DIAL, uri);
startActivity(intent);
}
public Long getPosicaoSelecionada() {
return posicaoSelecionada;
}
public void setPosicaoSelecionada(Long posicaoSelecionada) {
this.posicaoSelecionada = posicaoSelecionada;
}
@Override
public void onMapReady(GoogleMap googleMap) {
try {
mMap = googleMap;
// Endereço
EnderecosGruposServicos enderecosGruposServicos = prestador.getEnderecosGruposServicos().get(0);
String endereco = enderecosGruposServicos.getDs_end() + "," + enderecosGruposServicos.getNr_end() + " " + enderecosGruposServicos.getCidade() + " - " + enderecosGruposServicos.getDs_bairro() + "\n\n";
Log.i("ADDRESS", endereco);
Geocoder geocoder = new Geocoder(this);
Address address = geocoder.getFromLocationName(endereco, 1).get(0);
Log.i("ADDRESS", "Latitude: " + address.getLatitude() + " Longitude: " + address.getLongitude());
LatLng geolocalizacao = new LatLng(address.getLatitude(), address.getLongitude());
mMap.addMarker(new MarkerOptions().position(geolocalizacao).title(prestador.getNome()));
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(geolocalizacao, 17));
} catch (IOException e) {
e.printStackTrace();
}
}
}
identar texto pre-formatado em 4 espaços