>
Não consigo retornar a latitude e a longitude do registro selecionado no listview.
ListarVendasActivity.java
package br.com.dannydantasn.vendas;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteCursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import br.com.dannydantasn.vendas.R;
public class ListarVendasActivity extends Activity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listar_vendas);
SQLiteDatabase db = openOrCreateDatabase("vendas.db", Context.MODE_PRIVATE, null);
ListView ltwVendas = (ListView)findViewById(R.id.ltwVendas);
Cursor cursor = db.rawQuery("SELECT vendas._id, vendas.preco, vendas.la, vendas.lo, produtos.nome FROM vendas INNER JOIN produtos on produtos._id = vendas.produto", null);
String[] from = { "_id", "preco", "nome", "la", "lo"};
int[] to = {R.id.txvlID, R.id.txvlPreco, R.id.txvlNome, R.id.txvLa, R.id.txvLo};
SimpleCursorAdapter ad = new SimpleCursorAdapter(getBaseContext(), R.layout.model_listar, cursor, from, to);
ltwVendas.setAdapter(ad);
ltwVendas.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView ad, View v,
int position, long id) {
SQLiteCursor c = (SQLiteCursor)ad.getAdapter().getItem(position);
Intent it = new Intent(getBaseContext(), MapShowActivity.class);
it.putExtra("latitude", c.getDouble(c.getColumnIndex("la")));
it.putExtra("longitude", c.getDouble(c.getColumnIndex("lo")));
startActivity(it);
}
});
}
}
package br.com.dannydantasn.vendas;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
public class MapShowActivity extends FragmentActivity {
//como retornar latitude e longitude do registro selecionado?
private LatLng location = new LatLng(-23.648344,-46.798884);
private GoogleMap map;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mapa);
map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
MarkerOptions marcardor1 = new MarkerOptions();
marcardor1.position(location);
marcardor1.title("RL System - A sabedoria está em aprender!");
map.addMarker(marcardor1);
map.moveCamera(CameraUpdateFactory.newLatLngZoom(location, 20));
map.animateCamera(CameraUpdateFactory.zoomTo(10), 2000, null);
}
}
Detalhe, tentei retornar com Intent, mas não tive sucesso.
Funcionou, usando o exemplo de outro post do forum.
MapShowActivity.java CORRIGICO
package br.com.dannydantasn.vendas;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
public class MapShowActivity extends FragmentActivity {
private LatLng location;
private GoogleMap map;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mapa);
Intent it = getIntent();
double latitude = it.getDoubleExtra("latitude",0);
double longitude = it.getDoubleExtra("longitude",0);
location = new LatLng(latitude, longitude);
map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
MarkerOptions marcardor1 = new MarkerOptions();
marcardor1.position(location);
marcardor1.title("RL System - A sabedoria está em aprender!");
map.addMarker(marcardor1);
map.moveCamera(CameraUpdateFactory.newLatLngZoom(location, 20));
map.animateCamera(CameraUpdateFactory.zoomTo(10), 2000, null);
}
}