Autore Topic: Linkable Text in Dialog  (Letto 1698 volte)

Offline TheCat

  • Nuovo arrivato
  • *
  • Post: 16
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Ubuntu 11.04
Linkable Text in Dialog
« il: 16 Dicembre 2011, 12:07:24 CET »
0
Ciao a tutti,
mi ritrovo ad avere il seguente problema vorrei mettere all'interno di un dialog un testo cliccabile (praticamente un Link)
Mi sono un pò informato nel magico mondo di internet ma non sono riuscito a trovare niente di interessante, quello che faccio è creare uno spannablestring con l'url, chiamare il metodo Linkify e passarlo al dialog ma niente di tutto questo funziona, vi posto il codice da me scritto:

Codice (Java): [Seleziona]
private SpannableString [color=red]prova2[/color];

private void setLink()
        {
                [color=red]prova2[/color] = new SpannableString("http://google.it/");
        }

private void visualizza()
        {
                Linkify.addLinks(prova2, Linkify.ALL);
                AlertDialog.Builder builder = new AlertDialog.Builder(this);
                builder.setMessage(getString(R.string.Pois_name)+" "+marker.getName()+"\n"+
                                                   getString(R.string.Pois_latitude)+" "+marker.getLatitude()+"\n"+
                                                   getString(R.string.Pois_longitude)+" "+marker.getLongitude()+"\n"+
                                                   getString(R.string.Pois_color)+" "+marker.getColorName()+"\n"+
                                                   [color=red]prova2[/color]);
        }

ovviamente ho emesso l'intero codice ^_^

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Linkable Text in Dialog
« Risposta #1 il: 16 Dicembre 2011, 12:20:51 CET »
0
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline angeloflove82

  • Nuovo arrivato
  • *
  • Post: 47
  • Respect: +6
    • Mostra profilo
  • Dispositivo Android:
    samsung galaxy next
Re:Linkable Text in Dialog
« Risposta #2 il: 19 Settembre 2012, 09:16:08 CEST »
0
Salve a tutti...
mi aggiungo con la richiesta...
lo snippet l'ho letto e funziona con una text view, solo con un dialog no.

Codice (Java): [Seleziona]
AlertDialog.Builder builder = new AlertDialog.Builder(this);           
                        builder.setCancelable(true);
                       
                        String message = "Sito web: <a href='http://www.sito.it'>esempio</a>";
                        builder.setMessage(Html.fromHtml(message)).create();
                        builder.setTitle("Info");                      
                        builder.setPositiveButton("Chiudi",
                                        new DialogInterface.OnClickListener() {
                                                public void onClick(DialogInterface dialog,
                                                                int whichButton) {
                                                        dialog.dismiss();
                                                }
                        });
                       
                        builder.show();

In questo modo effettivamente crea il dialog con il link testo blu ma non me lo fa cliccare...
UN BEL non si rifiuta mai !!!

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re: Linkable Text in Dialog
« Risposta #3 il: 19 Settembre 2012, 11:37:47 CEST »
+1
Invece di usare il metodo .setMessage(),  crea la textview come nello snippet e poi passala al dialog con il metodo .setView() ;)

Sent from my Galaxy Nexus using Tapatalk 2

Offline angeloflove82

  • Nuovo arrivato
  • *
  • Post: 47
  • Respect: +6
    • Mostra profilo
  • Dispositivo Android:
    samsung galaxy next
Re: Linkable Text in Dialog
« Risposta #4 il: 19 Settembre 2012, 13:39:37 CEST »
0
Invece di usare il metodo .setMessage(),  crea la textview come nello snippet e poi passala al dialog con il metodo .setView() ;)

Sent from my Galaxy Nexus using Tapatalk 2


Grazie per la risposta!
Ho fatto così ma mi da questo errore:
Codice (Java): [Seleziona]
                       
                                       
                        TextView textView = (TextView) findViewById(R.id.mia_tv);              
                       
                        textView.setMovementMethod(LinkMovementMethod.getInstance());
                        textView.setText(Html.fromHtml("<a href=\"http://www.anddev.it\">AndDev</a>"));
                       
                        AlertDialog.Builder builder = new AlertDialog.Builder(this);
                        builder.setCancelable(true);           
                        builder.setView(textView);
                        builder.setTitle("Info");                      
                        builder.setPositiveButton("Chiudi",
                                        new DialogInterface.OnClickListener() {
                                                public void onClick(DialogInterface dialog,
                                                                int whichButton) {
                                                        dialog.dismiss();
                                                }
                                        });

                        builder.show();

Codice (Java): [Seleziona]
09-19 13:34:28.179: E/AndroidRuntime(3675): FATAL EXCEPTION: main
09-19 13:34:28.179: E/AndroidRuntime(3675): java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
09-19 13:34:28.179: E/AndroidRuntime(3675):     at android.view.ViewGroup.addViewInner(ViewGroup.java:1976)
09-19 13:34:28.179: E/AndroidRuntime(3675):     at android.view.ViewGroup.addView(ViewGroup.java:1871)
09-19 13:34:28.179: E/AndroidRuntime(3675):     at android.view.ViewGroup.addView(ViewGroup.java:1851)
09-19 13:34:28.179: E/AndroidRuntime(3675):     at com.android.internal.app.AlertController.setupView(AlertController.java:365)
09-19 13:34:28.179: E/AndroidRuntime(3675):     at com.android.internal.app.AlertController.installContent(AlertController.java:206)
09-19 13:34:28.179: E/AndroidRuntime(3675):     at android.app.AlertDialog.onCreate(AlertDialog.java:251)
09-19 13:34:28.179: E/AndroidRuntime(3675):     at android.app.Dialog.dispatchOnCreate(Dialog.java:307)
09-19 13:34:28.179: E/AndroidRuntime(3675):     at android.app.Dialog.show(Dialog.java:225)
09-19 13:34:28.179: E/AndroidRuntime(3675):     at android.app.AlertDialog$Builder.show(AlertDialog.java:802)
09-19 13:34:28.179: E/AndroidRuntime(3675):     at com.calcolo_costi_mezzi.MainActivity.onOptionsItemSelected(MainActivity.java:101)
09-19 13:34:28.179: E/AndroidRuntime(3675):     at android.app.Activity.onMenuItemSelected(Activity.java:2205)
09-19 13:34:28.179: E/AndroidRuntime(3675):     at com.android.internal.policy.impl.PhoneWindow.onMenuItemSelected(PhoneWindow.java:758)
09-19 13:34:28.179: E/AndroidRuntime(3675):     at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:143)
09-19 13:34:28.179: E/AndroidRuntime(3675):     at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:855)
09-19 13:34:28.179: E/AndroidRuntime(3675):     at com.android.internal.view.menu.IconMenuView.invokeItem(IconMenuView.java:532)
09-19 13:34:28.179: E/AndroidRuntime(3675):     at com.android.internal.view.menu.IconMenuItemView.performClick(IconMenuItemView.java:122)

se commento builder.setView(textView);   
mi esce il dialog con il titolo ed il tasto chudi, ma è vuoto e sotto vedo la textview con il linik e se chiudo il dialog  il link è cliccabile ma a me serve dentro il dialog.
« Ultima modifica: 19 Settembre 2012, 13:42:08 CEST da angeloflove82 »
UN BEL non si rifiuta mai !!!

Offline denper

  • Utente normale
  • ***
  • Post: 290
  • Respect: +60
    • Mostra profilo
    • Anddenper
  • Dispositivo Android:
    Moto G
  • Play Store ID:
    denper
  • Sistema operativo:
    Window 7, Windows XP
Re:Linkable Text in Dialog
« Risposta #5 il: 19 Settembre 2012, 13:51:41 CEST »
+1
Prova così:

Codice (Java): [Seleziona]
                TextView textView = new TextView(this);
                textView.setMovementMethod(LinkMovementMethod.getInstance());
                textView.setText(Html.fromHtml("<a href=\"http://www.anddev.it\">AndDev</a>"));

                AlertDialog.Builder builder = new AlertDialog.Builder(this);
                builder.setCancelable(true);
                builder.setView(textView);
                builder.setTitle("Info");
                builder.setPositiveButton("Chiudi", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int whichButton) {
                                dialog.dismiss();
                        }
                });

                builder.show();
Tutti sanno che una cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. [A.Einstein]

Proteggi la tua privacy! Utilizza GhostPhone! https://play.google.com/store/apps/details?id=com.denper.gp
Giochi a Winforlife e Superenalotto e sei stanco di controllare le tue schedine manualmente? Prova Checkwin: https://play.google.com/store/apps/details?id=com.denper.checkwintrial

Offline angeloflove82

  • Nuovo arrivato
  • *
  • Post: 47
  • Respect: +6
    • Mostra profilo
  • Dispositivo Android:
    samsung galaxy next
Re:Linkable Text in Dialog
« Risposta #6 il: 19 Settembre 2012, 14:04:06 CEST »
0

Perfetto sei un grande!!!
Grazie mille...
UN BEL non si rifiuta mai !!!