Boa tarde a todos,
Estou com uma dúvida a respeito de como implementar um mapa numa lista com adapter...segue a descrição:
1 - Tenho uma activity principal, no caso DetalheClienteActivity extends ListActivity, que consome um serviço e lista as empresas...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_detalhe_cliente);
context = getApplicationContext();
// CONSULTA AO SERVIÇO =====================================================================
Intent intent = getIntent();
Bundle args = intent.getExtras();
codigoCliente = args.getString("codigoCliente");
digitoCliente = args.getString("digitoCliente");
url = "www.meuservico.com";
Log.e("url", url);
itensLista = new ArrayList<Item>();
adapter = new Adapter_Item_DetalheCliente(DetalheClienteActivity.this,itensLista);
setListAdapter(adapter);
new GetCliente().execute();
//==========================================================================================
private class GetCliente extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
// Showing progress dialog
pDialog = new ProgressDialog(DetalheClienteActivity.this);
pDialog.setMessage("Por Favor Aguarde...");
pDialog.setCancelable(false);
pDialog.show();
}
@Override
protected Void doInBackground(Void... arg0) {
// Creating service handler class instance
ServiceHandler sh = new ServiceHandler();
// Making a request to url and getting response
String jsonStr = sh.makeServiceCall(url, ServiceHandler.GET);
Log.d("Response: ", "> " + jsonStr);
if (jsonStr != null) try {
JSONObject jsonObj = new JSONObject(jsonStr);
//JSONObject c = jsonObj.getJSONObject("");
url_logo = jsonObj.getString("url_logo");
fantasia = jsonObj.getString("fantasia");
endereco = jsonObj.getString("endereco");
String numero = jsonObj.getString("numero");
String bairro = jsonObj.getString("bairro");
String uf = jsonObj.getString("uf");
fones = jsonObj.getString("fones");
// TRATAMENTO DAS STRINGS DE ENDERECO ==================================
endereco = endereco.trim();
numero = numero.trim();
bairro = bairro.trim();
uf = uf.trim();
StringBuilder sb = new StringBuilder();
sb.append(endereco).append(",");
sb.append(numero).append("-");
sb.append(bairro).append(",");
sb.append(uf);
String enderecoCompleto = sb.toString();
//======================================================================
lista_telefone = jsonObj.getString("lista_telefone");
String imagem_urls = jsonObj.getString("imagem_urls");
horario = jsonObj.getString("horario");
horario = horario.trim();
semana = jsonObj.getString("semana");
semana = semana.trim();
feriado = jsonObj.getString("feriado");
feriado = feriado.trim();
sabado = jsonObj.getString("sabado");
sabado = sabado.trim();
domingo = jsonObj.getString("domingo");
domingo = domingo.trim();
latitude = jsonObj.getString("latitude");
longitude = jsonObj.getString("longitude");
referencia = jsonObj.getString("referencia");
formapagamento = jsonObj.getString("formapagamento");
site = jsonObj.getString("site");
email = jsonObj.getString("email");
String atividadesCliente = jsonObj.getString("atividades");
Item.Item_Cliente_Detalhe item = new Item.Item_Cliente_Detalhe(
url_logo, fantasia, enderecoCompleto, fones, descricao, horario,
formapagamento, referencia, site, email, atividadesCliente, categoria,
latitude, longitude, semana, feriado, sabado, domingo, imagem_urls,
promo_app, promo_app_titulo, lista_telefone
);
itensLista.add(item);
} catch (JSONException e) {
e.printStackTrace();
}
else {
Log.e("ServiceHandler", "Não Foi Possível Acessar a URL - Noticias");
}
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
if (pDialog.isShowing())
pDialog.dismiss();
adapter.notifyDataSetChanged();
}
}
2 - seu respectivo layout...
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:descendantFocusability="beforeDescendants">
<android.support.v7.widget.Toolbar
android:id="@+id/tb_main"
android:layout_height="@dimen/altura_header_interno"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
android:layout_alignParentLeft="true"
android:background="@drawable/cabecalho_menor"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" >
</android.support.v7.widget.Toolbar>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:longClickable="false" />
</LinearLayout>
</LinearLayout>
3 - O adapter...
convertView = mInflater.inflate(R.layout.detalhe_cliente, null);
double latitudeTratada = Double.parseDouble(latitude);
double longitudeTratada = Double.parseDouble(longitude);
LatLng CLIENTE = new LatLng(latitudeTratada, longitudeTratada);
map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
map.getUiSettings().setAllGesturesEnabled(true);
map.setMyLocationEnabled(false);
Marker marca_cliente = map.addMarker(new MarkerOptions().position(CLIENTE).title(fantasia));
// Move the camera instantly to hamburg with a zoom of 15.
map.moveCamera(CameraUpdateFactory.newLatLngZoom(CLIENTE, 18));
// Zoom in, animating the camera.
map.animateCamera(CameraUpdateFactory.zoomTo(16), 2000, null);
4 - layout do adapter...
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="190dp"
android:layout_marginTop="5dp">
<fragment
android:id="@+id/mapDetalheCliente"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.MapFragment" />
</LinearLayout>
Já tentei de várias formas instanciar, mas sempre recebo um NullPointerException...
Desde já agradeço a ajuda de todos!
Flws!
-- Estou com uma dúvida a respeito de como implementar um mapa numa lista com adapter...segue a descrição:
1 - Tenho uma activity principal, no caso DetalheClienteActivity extends ListActivity, que consome um serviço e lista as empresas...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_detalhe_cliente);
context = getApplicationContext();
// CONSULTA AO SERVIÇO =====================================================================
Intent intent = getIntent();
Bundle args = intent.getExtras();
codigoCliente = args.getString("codigoCliente");
digitoCliente = args.getString("digitoCliente");
url = "www.meuservico.com";
Log.e("url", url);
itensLista = new ArrayList<Item>();
adapter = new Adapter_Item_DetalheCliente(DetalheClienteActivity.this,itensLista);
setListAdapter(adapter);
new GetCliente().execute();
//==========================================================================================
private class GetCliente extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
// Showing progress dialog
pDialog = new ProgressDialog(DetalheClienteActivity.this);
pDialog.setMessage("Por Favor Aguarde...");
pDialog.setCancelable(false);
pDialog.show();
}
@Override
protected Void doInBackground(Void... arg0) {
// Creating service handler class instance
ServiceHandler sh = new ServiceHandler();
// Making a request to url and getting response
String jsonStr = sh.makeServiceCall(url, ServiceHandler.GET);
Log.d("Response: ", "> " + jsonStr);
if (jsonStr != null) try {
JSONObject jsonObj = new JSONObject(jsonStr);
//JSONObject c = jsonObj.getJSONObject("");
url_logo = jsonObj.getString("url_logo");
fantasia = jsonObj.getString("fantasia");
endereco = jsonObj.getString("endereco");
String numero = jsonObj.getString("numero");
String bairro = jsonObj.getString("bairro");
String uf = jsonObj.getString("uf");
fones = jsonObj.getString("fones");
// TRATAMENTO DAS STRINGS DE ENDERECO ==================================
endereco = endereco.trim();
numero = numero.trim();
bairro = bairro.trim();
uf = uf.trim();
StringBuilder sb = new StringBuilder();
sb.append(endereco).append(",");
sb.append(numero).append("-");
sb.append(bairro).append(",");
sb.append(uf);
String enderecoCompleto = sb.toString();
//======================================================================
lista_telefone = jsonObj.getString("lista_telefone");
String imagem_urls = jsonObj.getString("imagem_urls");
horario = jsonObj.getString("horario");
horario = horario.trim();
semana = jsonObj.getString("semana");
semana = semana.trim();
feriado = jsonObj.getString("feriado");
feriado = feriado.trim();
sabado = jsonObj.getString("sabado");
sabado = sabado.trim();
domingo = jsonObj.getString("domingo");
domingo = domingo.trim();
latitude = jsonObj.getString("latitude");
longitude = jsonObj.getString("longitude");
referencia = jsonObj.getString("referencia");
formapagamento = jsonObj.getString("formapagamento");
site = jsonObj.getString("site");
email = jsonObj.getString("email");
String atividadesCliente = jsonObj.getString("atividades");
Item.Item_Cliente_Detalhe item = new Item.Item_Cliente_Detalhe(
url_logo, fantasia, enderecoCompleto, fones, descricao, horario,
formapagamento, referencia, site, email, atividadesCliente, categoria,
latitude, longitude, semana, feriado, sabado, domingo, imagem_urls,
promo_app, promo_app_titulo, lista_telefone
);
itensLista.add(item);
} catch (JSONException e) {
e.printStackTrace();
}
else {
Log.e("ServiceHandler", "Não Foi Possível Acessar a URL - Noticias");
}
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
if (pDialog.isShowing())
pDialog.dismiss();
adapter.notifyDataSetChanged();
}
}
2 - seu respectivo layout...
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:descendantFocusability="beforeDescendants">
<android.support.v7.widget.Toolbar
android:id="@+id/tb_main"
android:layout_height="@dimen/altura_header_interno"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
android:layout_alignParentLeft="true"
android:background="@drawable/cabecalho_menor"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" >
</android.support.v7.widget.Toolbar>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:longClickable="false" />
</LinearLayout>
</LinearLayout>
3 - O adapter...
convertView = mInflater.inflate(R.layout.detalhe_cliente, null);
double latitudeTratada = Double.parseDouble(latitude);
double longitudeTratada = Double.parseDouble(longitude);
LatLng CLIENTE = new LatLng(latitudeTratada, longitudeTratada);
map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
map.getUiSettings().setAllGesturesEnabled(true);
map.setMyLocationEnabled(false);
Marker marca_cliente = map.addMarker(new MarkerOptions().position(CLIENTE).title(fantasia));
// Move the camera instantly to hamburg with a zoom of 15.
map.moveCamera(CameraUpdateFactory.newLatLngZoom(CLIENTE, 18));
// Zoom in, animating the camera.
map.animateCamera(CameraUpdateFactory.zoomTo(16), 2000, null);
4 - layout do adapter...
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="190dp"
android:layout_marginTop="5dp">
<fragment
android:id="@+id/mapDetalheCliente"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.MapFragment" />
</LinearLayout>
Já tentei de várias formas instanciar, mas sempre recebo um NullPointerException...
Desde já agradeço a ajuda de todos!
Flws!
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.






0 comentários:
Postar um comentário