Autore Topic: Pulsante di Share  (Letto 2135 volte)

Offline Ormet

  • Utente junior
  • **
  • Post: 71
    • Google+
    • Marco Falotico
    • Mostra profilo
  • Dispositivo Android:
    HTC One S
  • Play Store ID:
    Ormet
  • Sistema operativo:
    Windows 7
Pulsante di Share
« il: 20 Maggio 2012, 23:30:30 CEST »
Salve, credo non sia ancora stato creato un vero e proprio tutorial e volevo chiedere se potevate trattare il PULSANTE DI SHARE.
Per esempio, se creo un EditText con una stringa di testo al suo interno, come posso condividerla sui social network? Grazie mille a tutti quelli che mi risponderanno..

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Pulsante di Share
« Risposta #1 il: 21 Maggio 2012, 08:02:54 CEST »
Dal sito ufficiale android.com eri già passato?

Questo può fare al caso tuo? Share With Intents | Android Developers Blog
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Ormet

  • Utente junior
  • **
  • Post: 71
    • Google+
    • Marco Falotico
    • Mostra profilo
  • Dispositivo Android:
    HTC One S
  • Play Store ID:
    Ormet
  • Sistema operativo:
    Windows 7
Re:Pulsante di Share
« Risposta #2 il: 21 Maggio 2012, 09:34:36 CEST »
Si, inserisco questo codice ma mi da errore..potresti dirmi dove sbaglio..ti sono grato :)
Intent intent=new Intent(android.content.Intent.ACTION_SEND);
intent.setType("text/plain");
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
intent.putExtra(Intent.EXTRA_SUBJECT, R.id.T
EditText);
intent.putExtra(Intent.EXTRA_TEXT, R.String.stringa1);
... and starting it with a chooser:

startActivity(Intent.createChooser(intent, “How do you want to share?”));

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Pulsante di Share
« Risposta #3 il: 21 Maggio 2012, 09:46:55 CEST »
Non l'ho mai provato, per cui almeno sapere che errore ricevi sarebbe di aiuto.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Ormet

  • Utente junior
  • **
  • Post: 71
    • Google+
    • Marco Falotico
    • Mostra profilo
  • Dispositivo Android:
    HTC One S
  • Play Store ID:
    Ormet
  • Sistema operativo:
    Windows 7
Re:Pulsante di Share
« Risposta #4 il: 21 Maggio 2012, 12:54:41 CEST »
Niente, l'applicazione parte e funzione ma quando entro nell'intent col pulsante creato per lo share si blocca dicendo che c'è un errore in questo codice:

Codice: [Seleziona]
  share.setOnClickListener(new View.OnClickListener() {
                               
                                public void onClick(View v) {
                                        // TODO Auto-generated method stub
                                        Intent intent=new Intent(android.content.Intent.ACTION_SEND);
                                        intent.setType("text/plain");
                                        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
                                        intent.putExtra(Intent.EXTRA_SUBJECT, R.id.bar_editText1);
                                        intent.putExtra(Intent.EXTRA_TEXT, R.string.bar);
                                        startActivity(Intent.createChooser(intent, (CharSequence) bar));   
                        }
                        });

sono quasi sicuro di star sbagliando lo startActivity..giusto?

Offline DarnellNajanReed

  • Utente normale
  • ***
  • Post: 359
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus One, Acer Iconia A500/501, Asus Transformer Prime, Galaxy ACE, Galaxy S Plus, Galaxy S Advance P, Galaxy Tab 2 7.0, Google Nexus 7
  • Play Store ID:
    Luigi Notaro
  • Sistema operativo:
    OS X 10.8.3
Re:Pulsante di Share
« Risposta #5 il: 21 Maggio 2012, 13:00:57 CEST »
Postare il logcat sarebbe d'aiuto.

Offline Ormet

  • Utente junior
  • **
  • Post: 71
    • Google+
    • Marco Falotico
    • Mostra profilo
  • Dispositivo Android:
    HTC One S
  • Play Store ID:
    Ormet
  • Sistema operativo:
    Windows 7
Re:Pulsante di Share
« Risposta #6 il: 21 Maggio 2012, 13:05:44 CEST »
Scusa, effettivamente..grazie del vostro aiuto!!  :-)
Ecco gli errori del logcat

05-21 13:03:17.247: W/dalvikvm(14110): threadid=1: thread exiting with uncaught exception (group=0x40ab9428)
05-21 13:03:17.257: E/AndroidRuntime(14110): FATAL EXCEPTION: main
05-21 13:03:17.257: E/AndroidRuntime(14110): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.beandroid.ormet/com.beandroid.ormet.Barzellette}: java.lang.NullPointerException
05-21 13:03:17.257: E/AndroidRuntime(14110):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2194)
05-21 13:03:17.257: E/AndroidRuntime(14110):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2229)
05-21 13:03:17.257: E/AndroidRuntime(14110):    at android.app.ActivityThread.access$600(ActivityThread.java:139)
05-21 13:03:17.257: E/AndroidRuntime(14110):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1261)
05-21 13:03:17.257: E/AndroidRuntime(14110):    at android.os.Handler.dispatchMessage(Handler.java:99)
05-21 13:03:17.257: E/AndroidRuntime(14110):    at android.os.Looper.loop(Looper.java:154)
05-21 13:03:17.257: E/AndroidRuntime(14110):    at android.app.ActivityThread.main(ActivityThread.java:4944)
05-21 13:03:17.257: E/AndroidRuntime(14110):    at java.lang.reflect.Method.invokeNative(Native Method)
05-21 13:03:17.257: E/AndroidRuntime(14110):    at java.lang.reflect.Method.invoke(Method.java:511)
05-21 13:03:17.257: E/AndroidRuntime(14110):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
05-21 13:03:17.257: E/AndroidRuntime(14110):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
05-21 13:03:17.257: E/AndroidRuntime(14110):    at dalvik.system.NativeStart.main(Native Method)
05-21 13:03:17.257: E/AndroidRuntime(14110): Caused by: java.lang.NullPointerException
05-21 13:03:17.257: E/AndroidRuntime(14110):    at com.beandroid.ormet.Barzellette.onCreate(Barzellette.java:184)
05-21 13:03:17.257: E/AndroidRuntime(14110):    at android.app.Activity.performCreate(Activity.java:4531)
05-21 13:03:17.257: E/AndroidRuntime(14110):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1071)
05-21 13:03:17.257: E/AndroidRuntime(14110):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2150)
05-21 13:03:17.257: E/AndroidRuntime(14110):    ... 11 more

Offline DarnellNajanReed

  • Utente normale
  • ***
  • Post: 359
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus One, Acer Iconia A500/501, Asus Transformer Prime, Galaxy ACE, Galaxy S Plus, Galaxy S Advance P, Galaxy Tab 2 7.0, Google Nexus 7
  • Play Store ID:
    Luigi Notaro
  • Sistema operativo:
    OS X 10.8.3
Re:Pulsante di Share
« Risposta #7 il: 21 Maggio 2012, 13:56:20 CEST »
Qui cosa c'è?
Codice (Java): [Seleziona]
com.beandroid.ormet.Barzellette.onCreate(Barzellette.java:184)

Offline Ormet

  • Utente junior
  • **
  • Post: 71
    • Google+
    • Marco Falotico
    • Mostra profilo
  • Dispositivo Android:
    HTC One S
  • Play Store ID:
    Ormet
  • Sistema operativo:
    Windows 7
Re:Pulsante di Share
« Risposta #8 il: 21 Maggio 2012, 14:18:01 CEST »
Il pulsante di share..

Offline DarnellNajanReed

  • Utente normale
  • ***
  • Post: 359
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus One, Acer Iconia A500/501, Asus Transformer Prime, Galaxy ACE, Galaxy S Plus, Galaxy S Advance P, Galaxy Tab 2 7.0, Google Nexus 7
  • Play Store ID:
    Luigi Notaro
  • Sistema operativo:
    OS X 10.8.3
Re:Pulsante di Share
« Risposta #9 il: 21 Maggio 2012, 14:26:19 CEST »
Se ci riporti la linea di codice alla riga 184 magari riusciamo a capire perchè sbomba. C'è un NullPointerException segnalato, ma senza codice l'è dura.

Ad ogni modo, in generale fai attenzione quando lanci un intent implicito: se non c'è nessuno che riesce a risolverlo, l'app si schianta.

Offline Ormet

  • Utente junior
  • **
  • Post: 71
    • Google+
    • Marco Falotico
    • Mostra profilo
  • Dispositivo Android:
    HTC One S
  • Play Store ID:
    Ormet
  • Sistema operativo:
    Windows 7
Re:Pulsante di Share
« Risposta #10 il: 21 Maggio 2012, 21:51:43 CEST »
allora, seguendo il tuo consiglio ho creato un altro intent, non implicito e l'applicazione funziona..
appare il pulsante di share ma questa volta quando lo clicco non mi mette l'oggetto dello share stesso (praticamente se per esempio condivido via gmail appare una mail vuota, senza l'oggetto)..
ecco il codice
Codice: [Seleziona]
OptionsMenu Menu;
            MenuItem icon, blogger, facebook, home, indietro, avanti;
            ImageView share;
            TextView bar_editText1;
           
                @Override
                   public boolean onKeyDown(int keyCode, KeyEvent event)  {
                       if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
                               Intent loadBarzellette = new Intent(Barzellette_risposte.this, Barzellette.class);
                       startActivity(loadBarzellette);
                       Barzellette_risposte.this.finish();
                           return true;
                       }

                       return super.onKeyDown(keyCode, event);
                   }
           
public void onCreate(Bundle savedInstanceState) {
                        super.onCreate(savedInstanceState);
                        setContentView(R.layout.barzellette_risposte);
       
        bar_editText1 = (TextView) findViewById (R.id.bar_editText1);
        share = (ImageView) findViewById (R.id.share);
       
        bar_editText1.setText(R.string.barzellette_bisboccia);
       
         share.setOnClickListener(new View.OnClickListener() {
                       
                        public void onClick(View v) {
                                // TODO Auto-generated method stub
                                Intent intent=new Intent(android.content.Intent.ACTION_SEND);
                                intent.setType("text/plain");
                                intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
                                intent.putExtra(Intent.EXTRA_SUBJECT, R.id.bar_editText1);
                                intent.putExtra(Intent.EXTRA_TEXT, R.string.barzellette_bisboccia);
                                startActivity(Intent.createChooser(intent, getString(R.string.barzellette_bisboccia)));   
                                return;
                }

                });
        }
}
sono un rompino ma vorrei riuscire a condividere la stringa

jfrankie

  • Visitatore
Re:Pulsante di Share
« Risposta #11 il: 22 Agosto 2012, 23:17:36 CEST »

Offline Ormet

  • Utente junior
  • **
  • Post: 71
    • Google+
    • Marco Falotico
    • Mostra profilo
  • Dispositivo Android:
    HTC One S
  • Play Store ID:
    Ormet
  • Sistema operativo:
    Windows 7
Re:Pulsante di Share
« Risposta #12 il: 17 Maggio 2013, 19:57:41 CEST »
per la cronaca ho risolto così:

 
Codice (XML): [Seleziona]
share = (ImageButton) findViewById (R.id.share);
                       
                        share.setOnClickListener(new View.OnClickListener() {
                       
                        public void onClick(View v) {
                       
                                Intent i = new Intent();

                               
                            String msg ="Barzellette e freddure, applicazione gratuita per Android";

                            i = new Intent(Intent.ACTION_SEND);
                            i.setType("text/plain");

                            i.putExtra(Intent.EXTRA_SUBJECT, msg);
                           
                           
                       
                       
                                 i.putExtra(Intent.EXTRA_TEXT, getResources().getText(R.string.stringa_da_condividere));
                       
                           
               
                            startActivity(i);
                        }


                });
                       
        }
}