Autore Topic: map + alertdialog con pulsanti e intent ... informazioni  (Letto 843 volte)

Offline ALEX88-ANDR0!D

  • Utente normale
  • ***
  • Post: 173
  • The Special One
  • Respect: +13
    • Google+
    • droidev88
    • Mostra profilo
  • Dispositivo Android:
    HTC DESIRE HD
  • Sistema operativo:
    WINDOWS 7
map + alertdialog con pulsanti e intent ... informazioni
« il: 03 Aprile 2011, 21:38:35 CEST »
0
ciao a tutti , avendo poche parole a disposizione per il titolo non sapevo cosa scrivere ,
allora veniamo al problema che ho ... sto facendo delle prove per una mia app ... con del codice preso in internet riesco a creare una map view , con dentro degli overlay (con informazioni all'interno (indirizzo , numero di telefono ecc...) tramite l'utilizzo di un dialog , il dialog contiene anche 3 pulsanti (naviga , telefona e chiudi) qui arrivano i problemi , ho provato  a inserire degli intent , il primo associato al primo pulsante per far apparire il navigatore "maps" il secondo per far apparire la classica schermata della composizione di un numero

di seguito posto un po' di codice
 
Codice (Java): [Seleziona]
package com.example;

import java.util.ArrayList;

import android.app.AlertDialog;
import android.content.ComponentName;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.net.Uri;



import com.google.android.maps.ItemizedOverlay;
import com.google.android.maps.OverlayItem;

public class PlacesItemizedOverlay extends ItemizedOverlay<OverlayItem> {
  private Context context;
  private ArrayList<OverlayItem> items = new ArrayList<OverlayItem>();

  public PlacesItemizedOverlay(Context aContext, Drawable marker) {
    super(boundCenterBottom(marker));
    context = aContext;
  }

  public void addOverlayItem(OverlayItem item) {
    items.add(item);
    populate();
  }

  @Override
  protected OverlayItem createItem(int i) {
    return items.get(i);
  }

  @Override
  public int size() {
    return items.size();
  }

  @Override
  protected boolean onTap(int index) {
    OverlayItem item = items.get(index);
    AlertDialog.Builder dialog = new AlertDialog.Builder(context);
    dialog.setTitle(item.getTitle());
    dialog.setMessage(item.getSnippet());
    dialog.setPositiveButton("naviga", new OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {
        //TextView txt1=(TextView)findViewById(R.id.txt1);
        //txt1.setText("You clicked Ok");
                Intent intent =  new Intent(Intent.ACTION_VIEW,Uri.parse("http://.maps.google.com/maps?f=d&saddr="));
                intent.setComponent(new ComponentName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity"));
                startActivity(intent);
               
        }
       
               
        });

    dialog.setNegativeButton("chiudi", new OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {
        // TODO Auto-generated method stub
        //TextView txt2=(TextView)findViewById(R.id.txt);
        //txt2.setText("You clicked Cancel");
        }
        });

    dialog.setNeutralButton("Telefona", new OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {
        // TODO Auto-generated method stub
        //TextView txt3=(TextView)findViewById(R.id.txt);
        //txt3.setText("Neutral Button Clicked");
                Intent dialIntent = new Intent();
                dialIntent.setAction(Intent.ACTION_DIAL);
                startActivity(dialIntent);
        }
       
        });
    dialog.show();
   
    return true;
  }
notare , il codice così come è sopra , mi genera 2 errori nei due "startActivity(dialIntent) e startActivity(intent) ,con due possibili soluzioni
1)  create method 'startActivity(intent)'
2)  create method 'startActivity(intent)' in type ìPlacesItemizedOverlay'

 i codici usati se li uso in due pulsanti (come faccio già nella pagina principale della app funzionano , qui invece no , cosa sto sbagliando ??

grazie mille . ciao a tutti :-)

}
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline teskio

  • Moderatore globale
  • Utente normale
  • *****
  • Post: 387
  • Respect: +118
    • Github
    • Google+
    • Mostra profilo
    • Skullab
  • Dispositivo Android:
    Cubot GT99 / SurfTab Ventos 10.1
  • Play Store ID:
    Skullab Software
  • Sistema operativo:
    windows 7 / ubuntu 12.04
Re:map + alertdialog con pulsanti e intent ... informazioni
« Risposta #1 il: 03 Aprile 2011, 22:01:54 CEST »
+1
Il metodo startActivity(Intent intent) fa parte della classe Context  :-P
Dato che le Activity sono estensione indiretta di Context, implementano questo metodo nativamente, ma nel tuo caso la classe PlacesItemizedOverlay estende ItemizedOverlay<OverlayItem> e quindi il metodo startActivity non esiste, se non all'interno dell'istanza di Context, che nel costuttore della tua classe viene salvata in "context"  :-P
ergo :
Codice (Java): [Seleziona]
context.startActivity(intent);

Offline ALEX88-ANDR0!D

  • Utente normale
  • ***
  • Post: 173
  • The Special One
  • Respect: +13
    • Google+
    • droidev88
    • Mostra profilo
  • Dispositivo Android:
    HTC DESIRE HD
  • Sistema operativo:
    WINDOWS 7
Re:map + alertdialog con pulsanti e intent ... informazioni
« Risposta #2 il: 04 Aprile 2011, 00:30:46 CEST »
0
 :-) Ciao Teskio ... perfetto , ora funziona tutto alla perfezione , i miei complimenti oltre che per la soluzione anche per la spiegazione esaustiva ... ancora grazie mille per avermi aiutato  :-* un + 1 e perfin poco ;-) ciao
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !