Autore Topic: aprire link nel browser  (Letto 2004 volte)

Offline Ansem

  • Utente junior
  • **
  • Post: 107
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC HD2
  • Sistema operativo:
    4.0.4
aprire link nel browser
« il: 09 Marzo 2012, 17:01:44 CET »
0
Salve a tutti. Nella mia applicazione vorrei fare in modo che tappando sul button mi aprisse un link all'interno del browser.
Purtoppo però non sono riuscito a capire come fare :( di seguito vi metto il codice:
Codice: [Seleziona]
btnRegistrazione = new Button(this);
            btnRegistrazione.setOnClickListener(this);
             
            aprilink("http://www.google.it");
             
            setContentView(btnRegistrazione);
            }
             
            public void onClick(View v){
            aprilink("http://www.google.it");
            }
           
            private void aprilink( Uri string ){
                    Intent browse = new Intent( Intent.ACTION_VIEW, string );

                startActivity( browse );
                }
            };

l'errore che mi da riguarda il fatto che tra gli apici c'è una stringa,e non un url (almeno da quel che ho capito).
Qualcuno mi potrebbe spiegare come dovrei scrivere correttamente questa parte dell'applicazione? :(

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:aprire link nel browser
« Risposta #1 il: 09 Marzo 2012, 17:04:11 CET »
0
Codice (Java): [Seleziona]
Intent browse = new Intent( Intent.ACTION_VIEW, Uri.parse(string) );

Offline Ansem

  • Utente junior
  • **
  • Post: 107
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC HD2
  • Sistema operativo:
    4.0.4
Re:aprire link nel browser
« Risposta #2 il: 09 Marzo 2012, 17:15:58 CET »
0
ecco, questa è un'altra cosa che mi devo guardare perchè non ho proprio capito come devo usare gli intent.
Dove dovrei mettere quella riga di codice per far funzionare il tutto?mi va a sostituire tutte le altre?

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:aprire link nel browser
« Risposta #3 il: 09 Marzo 2012, 17:19:04 CET »
0
ecco, questa è un'altra cosa che mi devo guardare perchè non ho proprio capito come devo usare gli intent.
Dove dovrei mettere quella riga di codice per far funzionare il tutto?mi va a sostituire tutte le altre?

no, devi solo cambiare quella che hai scritto tu con quella che ho scritto io :P

Offline Trigun

  • Utente normale
  • ***
  • Post: 183
  • Respect: +4
    • Mostra profilo
Re:aprire link nel browser
« Risposta #4 il: 09 Marzo 2012, 17:22:42 CET »
0
in realtà dovrebbe anche cambiare
Codice (Java): [Seleziona]
private void aprilink( Uri string ){con
Codice (Java): [Seleziona]
private void aprilink( String string ){

Offline Ansem

  • Utente junior
  • **
  • Post: 107
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC HD2
  • Sistema operativo:
    4.0.4
Re:aprire link nel browser
« Risposta #5 il: 09 Marzo 2012, 18:26:49 CET »
0
intanto vi ringrazio per l'aiuto :) in particolare ricky che mi ha sbloccato :)
Ho provato a lanciare l'applicazione dell'emulatore,però quando tappo sul pulsante non succede niente :(
Il mio dubbio a questo punto è se ho fatto correttamente il collegamento tra il bottone e il codice java :/
questo è il codice XML del bottone:
Codice: [Seleziona]
<Button
        android:id="@+id/btnRegistrazione"
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="@string/Registrati" />
e questo il codice java che finalmente non da più errori :)
Codice: [Seleziona]
public class EasyParkingActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
    public class Registrazione extends Activity implements View.OnClickListener{
            private Button btnRegistrazione;
             
            @Override
            public void onCreate(Bundle b){
            super.onCreate(b);
             
            btnRegistrazione = new Button(this);
            btnRegistrazione.setOnClickListener(this);
             
            aprilink("http://www.google.it");
             
            setContentView(btnRegistrazione);
            }
             
            public void onClick(View v){
            aprilink("http://www.google.it");
            }
           
            private void aprilink( String string ){
                    Intent browse = new Intent( Intent.ACTION_VIEW, Uri.parse(string) );

                startActivity( browse );
                }
            };
           

Offline Ansem

  • Utente junior
  • **
  • Post: 107
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC HD2
  • Sistema operativo:
    4.0.4
Re:aprire link nel browser
« Risposta #6 il: 10 Marzo 2012, 16:23:48 CET »
0
ho provato anche con questo codice,ma non riesco a capire perchè mi da due errore :(
Codice: [Seleziona]
public class Registrazione extends Activity {
            //creo il pulsante
            private Button btnRegistrazione;
            //assegno a btnRegistrazione quello in XML
            btnRegistrazione = (Button) void findViewById (R.id.btnRegistrazione);

            btnRegistrazione.setOnClickListener(new View.OnClickListener() {
                      public void onClick(View view) {
                              Intent browse = new Intent( Intent.ACTION_VIEW, Uri.parse("http://www.google.it") );
                      }
                    });

il primo errore me lo da sul ;
il secondo invece nella assegnazione :( So di fare domande davvero stupide,ma spero è la mia prima esperienza con android e e java e faccio ancora parecchia fatica a capire il funzionamento degli oggetti :(

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:aprire link nel browser
« Risposta #7 il: 10 Marzo 2012, 16:31:52 CET »
0
Qualcosa del genere?

Codice (Java): [Seleziona]
public class EasyParkingActivity extends Activity {

    private Button btnRegistrazione;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
                btnRegistrazione = (Button) findViewById (R.id.btnRegistrazione);

        btnRegistrazione.setOnClickListener(new View.OnClickListener() {
                  public void onClick(View view) {
                          Intent browse = new Intent( Intent.ACTION_VIEW, Uri.parse("http://www.google.it") );
                  }
                });
   }
}

Offline Ansem

  • Utente junior
  • **
  • Post: 107
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC HD2
  • Sistema operativo:
    4.0.4
Re:aprire link nel browser
« Risposta #8 il: 10 Marzo 2012, 16:47:26 CET »
0
niente da fare  >:(
l'emulatore non apre nulla  >:(
io cercando su internet ho trovato anche questo metodo:
Codice: [Seleziona]
public class EasyParkingActivity extends Activity {
private Button btnRegistrazione;
 View.OnClickListener gestore = new View.OnClickListener() {
                      public void onClick(View view) {
                       
                        switch(view.getId()){
                                       
                          case R.id.btnRegistrazione:
                                 Intent browse = new Intent( Intent.ACTION_VIEW, Uri.parse("http://www.google.it"));
                            break;
                                                   
                         
                        }       
                      }
                    };
                           
            btnRegistrazione.setOnClickListener(gestore);
           

però mi da errore su gestore,dicendomi che si aspetta una VariableDeclaratorId :/
P.s. la rabbia è con android,mica con voi che mi state aiutando ;) e vi ringrazio ancora per tutto l'aiuto!
« Ultima modifica: 10 Marzo 2012, 16:51:56 CET da Ansem »

Offline Trigun

  • Utente normale
  • ***
  • Post: 183
  • Respect: +4
    • Mostra profilo
Re:aprire link nel browser
« Risposta #9 il: 10 Marzo 2012, 18:29:00 CET »
+1
ma scusa ...


sull'xml del bottone fai una cosa del genere no?

Codice (XML): [Seleziona]
    <Button
       android:id="@+id/button"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:onClick="mihaicliccato"
       android:text="@string/button" >
    </Button>


e poi fai la funzione mihaicliccato nel codice java...
è anche più semplice...

Offline Ansem

  • Utente junior
  • **
  • Post: 107
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC HD2
  • Sistema operativo:
    4.0.4
Re:aprire link nel browser
« Risposta #10 il: 11 Marzo 2012, 11:15:36 CET »
0
ma scusa ...


sull'xml del bottone fai una cosa del genere no?

Codice (XML): [Seleziona]
    <Button
       android:id="@+id/button"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:onClick="mihaicliccato"
       android:text="@string/button" >
    </Button>


e poi fai la funzione mihaicliccato nel codice java...
è anche più semplice...
Questo metodo mi piace davvero molto :D grazie mille del consiglio!
però quando provo il codice mi si chiude forzatamente l'applicazione :(
ti metto di seguito il codice che ho usato per eseguire il tuo metodo:
java
Codice: [Seleziona]
public class EasyParkingActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
    private void aprilink( String string ){
                Intent browse = new Intent( Intent.ACTION_VIEW, Uri.parse(string) );

            startActivity( browse );}
   
}
XML
Codice: [Seleziona]
<Button
        android:id="@+id/btnRegistrazione"
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
         android:onClick="aprilink"
        android:text="@string/Registrati" />

Offline Trigun

  • Utente normale
  • ***
  • Post: 183
  • Respect: +4
    • Mostra profilo
Re:aprire link nel browser
« Risposta #11 il: 11 Marzo 2012, 11:55:33 CET »
+1
aprilink non è string string dovrebbe esser View v come parametro

Offline Ansem

  • Utente junior
  • **
  • Post: 107
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC HD2
  • Sistema operativo:
    4.0.4
Re:aprire link nel browser
« Risposta #12 il: 11 Marzo 2012, 14:52:16 CET »
0
ho modificato questa parte di codice ma mi chiude l'applicazione dando errore :(
ho modificato aprilink così:
Codice: [Seleziona]
private void aprilink( View v ){
                Intent browse = new Intent( Intent.ACTION_VIEW, Uri.parse("http://www.google.it") );
il logcat mi dice questo:
Codice: [Seleziona]
03-11 13:27:26.684: E/AndroidRuntime(273): FATAL EXCEPTION: main
03-11 13:27:26.684: E/AndroidRuntime(273): java.lang.IllegalStateException: Could not find a method aprilink(View) in the activity class com.homelinux.agnese.EasyParkingActivity for onClick handler on view class android.widget.Button with id 'btnRegistrazione'
03-11 13:27:26.684: E/AndroidRuntime(273):         at android.view.View$1.onClick(View.java:2059)
03-11 13:27:26.684: E/AndroidRuntime(273):         at android.view.View.performClick(View.java:2408)
03-11 13:27:26.684: E/AndroidRuntime(273):         at android.view.View$PerformClick.run(View.java:8816)
03-11 13:27:26.684: E/AndroidRuntime(273):         at android.os.Handler.handleCallback(Handler.java:587)
03-11 13:27:26.684: E/AndroidRuntime(273):         at android.os.Handler.dispatchMessage(Handler.java:92)
03-11 13:27:26.684: E/AndroidRuntime(273):         at android.os.Looper.loop(Looper.java:123)
03-11 13:27:26.684: E/AndroidRuntime(273):         at android.app.ActivityThread.main(ActivityThread.java:4627)
03-11 13:27:26.684: E/AndroidRuntime(273):         at java.lang.reflect.Method.invokeNative(Native Method)
03-11 13:27:26.684: E/AndroidRuntime(273):         at java.lang.reflect.Method.invoke(Method.java:521)
03-11 13:27:26.684: E/AndroidRuntime(273):         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
03-11 13:27:26.684: E/AndroidRuntime(273):         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
03-11 13:27:26.684: E/AndroidRuntime(273):         at dalvik.system.NativeStart.main(Native Method)
03-11 13:27:26.684: E/AndroidRuntime(273): Caused by: java.lang.NoSuchMethodException: aprilink
03-11 13:27:26.684: E/AndroidRuntime(273):         at java.lang.ClassCache.findMethodByName(ClassCache.java:308)
03-11 13:27:26.684: E/AndroidRuntime(273):         at java.lang.Class.getMethod(Class.java:985)
03-11 13:27:26.684: E/AndroidRuntime(273):         at android.view.View$1.onClick(View.java:2052)

Offline Trigun

  • Utente normale
  • ***
  • Post: 183
  • Respect: +4
    • Mostra profilo
Re:aprire link nel browser
« Risposta #13 il: 11 Marzo 2012, 15:02:19 CET »
+1
prova con public void

Offline Ansem

  • Utente junior
  • **
  • Post: 107
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC HD2
  • Sistema operativo:
    4.0.4
Re:aprire link nel browser
« Risposta #14 il: 11 Marzo 2012, 16:00:38 CET »
0
grazie mille trigun! E grazie anche a tutti gli altri che mi hanno aiutato! finalmente funziona questa piccola cosa :D