Autore Topic: Problemi con lo ShareActionProvider  (Letto 612 volte)

Offline bakiko

  • Utente junior
  • **
  • Post: 74
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC One
  • Sistema operativo:
    Windows 7
Problemi con lo ShareActionProvider
« il: 15 Gennaio 2014, 15:53:05 CET »
0
Salve ragazzi ho un problema con lo ShareAction. Praticamente vorrei dare l'opportunità all'utente di condividere (attraverso email,facebook,twitter e altro) la pagina internet che si sta visitando.
Ci tengo a precisare che le api utilizzate e dichiarate nel manifest sono le seguenti:
Codice (Java): [Seleziona]
 <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="16" />

 Ho creato un semplice ShareActionProvider in questo modo:
Codice (Java): [Seleziona]
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
                getMenuInflater().inflate(R.menu.activity_pagina, menu);
                mShareActionProvider = (ShareActionProvider) menu.findItem(R.id.share).getActionProvider();
        mShareActionProvider.setShareIntent(getDefaultShareIntent());
        return super.onCreateOptionsMenu(menu);
        }
       
        private Intent getDefaultShareIntent(){
                String text=di.getHref();
        Intent intent = new Intent(Intent.ACTION_SEND);
        intent.setType("text/plain");
        intent.putExtra(Intent.EXTRA_TEXT,text);
        return intent;
    }

Questo è il file menu activity_pagina.xml:
Codice (Java): [Seleziona]
<item
        android:id="@+id/share"
        android:title="Share"
        android:showAsAction="ifRoom"
        android:actionProviderClass="android.widget.ShareActionProvider"
    />

Questo invece è il logcat:
Codice (Java): [Seleziona]
01-15 15:41:49.712: E/AndroidRuntime(31711): FATAL EXCEPTION: main
01-15 15:41:49.712: E/AndroidRuntime(31711): java.lang.NullPointerException
01-15 15:41:49.712: E/AndroidRuntime(31711):    at com.programmingAntonio.provaArticolo.getDefaultShareIntent(Articolo.java:186)
01-15 15:41:49.712: E/AndroidRuntime(31711):    at com.programmingAntonio.provaArticolo.onCreateOptionsMenu(Articolo.java:181)
01-15 15:41:49.712: E/AndroidRuntime(31711):    at android.app.Activity.onCreatePanelMenu(Activity.java)
01-15 15:41:49.712: E/AndroidRuntime(31711):    at com.android.internal.policy.impl.PhoneWindow.preparePanel(PhoneWindow.java)
01-15 15:41:49.712: E/AndroidRuntime(31711):    at com.android.internal.policy.impl.PhoneWindow.doInvalidatePanelMenu(PhoneWindow.java)
01-15 15:41:49.712: E/AndroidRuntime(31711):    at com.android.internal.policy.impl.PhoneWindow$1.run(PhoneWindow.java)
01-15 15:41:49.712: E/AndroidRuntime(31711):    at android.view.Choreographer$CallbackRecord.run(Choreographer.java)
01-15 15:41:49.712: E/AndroidRuntime(31711):    at android.view.Choreographer.doCallbacks(Choreographer.java)
01-15 15:41:49.712: E/AndroidRuntime(31711):    at android.view.Choreographer.doFrame(Choreographer.java)
01-15 15:41:49.712: E/AndroidRuntime(31711):    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java)
01-15 15:41:49.712: E/AndroidRuntime(31711):    at android.os.Handler.handleCallback(Handler.java)
01-15 15:41:49.712: E/AndroidRuntime(31711):    at android.os.Handler.dispatchMessage(Handler.java)
01-15 15:41:49.712: E/AndroidRuntime(31711):    at android.os.Looper.loop(Looper.java)
01-15 15:41:49.712: E/AndroidRuntime(31711):    at android.app.ActivityThread.main(ActivityThread.java)
01-15 15:41:49.712: E/AndroidRuntime(31711):    at java.lang.reflect.Method.invokeNative(Native Method)
01-15 15:41:49.712: E/AndroidRuntime(31711):    at java.lang.reflect.Method.invoke(Method.java)
01-15 15:41:49.712: E/AndroidRuntime(31711):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java)
01-15 15:41:49.712: E/AndroidRuntime(31711):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java)
01-15 15:41:49.712: E/AndroidRuntime(31711):    at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:126)
01-15 15:41:49.712: E/AndroidRuntime(31711):    at dalvik.system.NativeStart.main(Native Method)
grazie a tutti per la disponibilità.....

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:Problemi con lo ShareActionProvider
« Risposta #1 il: 15 Gennaio 2014, 17:54:59 CET »
+1
Citazione
01-15 15:41:49.712: E/AndroidRuntime(31711): java.lang.NullPointerException
01-15 15:41:49.712: E/AndroidRuntime(31711):    at com.programmingAntonio.provaArticolo.getDefaultShareIntent(Articolo.java:186)

Qualcosa è NULL alla riga 186 di Articolo.java
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline bakiko

  • Utente junior
  • **
  • Post: 74
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC One
  • Sistema operativo:
    Windows 7
Re:Problemi con lo ShareActionProvider
« Risposta #2 il: 24 Gennaio 2014, 01:19:25 CET »
0
Qualcosa è NULL alla riga 186 di Articolo.java

Si avevo notato anche io quella notifica. Infatti io pensavo che l'oggetto in questione venisse creato nell' onCreate invece ho notato che erroneamente l'oggetto veniva creato nell' AsyncTask, e per questo motivo risultava null. Quindi in definitiva il codice postato è corretto (l'oggetto in questione chiamato "di", deve essere inizializzato nell' OnCreate ).....Grazie mille per l'aiuto ;)