Autore Topic: ShareActionProvider e Contextual Action Bar  (Letto 507 volte)

Offline Smith

  • Nuovo arrivato
  • *
  • Post: 10
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Nexus 4
  • Sistema operativo:
    Ubuntu 13.04
ShareActionProvider e Contextual Action Bar
« il: 29 Maggio 2013, 13:05:39 CEST »
0
Salve ragazzi,
ho un problema con la ShareActionProvider nella contextual action bar.
In poche parole riesco a far vedere l'icona share nella contextual action bar, ma non è cliccabile. Se clicco non fa nulla...
Quale può essere il problema?

Questo è parte del codice che implementa la contextual action bar nella main activity:
Codice (Java): [Seleziona]
private ActionMode.Callback mActionModeCallback = new ActionMode.Callback() {          
               
                private ShareActionProvider mShareActionProvider;
               
                @Override
                public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
                        // TODO Auto-generated method stub
                        return false;
                }
               
                @Override
                public void onDestroyActionMode(ActionMode mode) {
                        // TODO Auto-generated method stub
                        mActionMode = null;                    
                }
               
                @Override
                public boolean onCreateActionMode(ActionMode mode, Menu menu) {
                        // TODO Auto-generated method stub
                        mode.getMenuInflater().inflate(R.menu.context_menu, menu);                     
                        return true;
                }
               
                @Override
                public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
                        // TODO Auto-generated method stub
                        switch(item.getItemId())
                        {
                        case R.id.delete_image:
                                deleteImage();
                                Toast.makeText(MainActivity.this, "IMAGE DISCARD", Toast.LENGTH_SHORT).show();
                                onCreate(savedInstanceState);
                                mode.finish();
                                break;
                        case R.id.share_image:
                                mShareActionProvider = (ShareActionProvider) item.getActionProvider();
                                mShareActionProvider.setShareIntent(createShareIntent());
                                mode.finish();
                                break;
                        default:
                                break;
                        }
                        return true;
                }
        };

Questo invece è il codice xml per il menu:
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
       
    <item
       android:id="@+id/delete_image"
       android:title="@string/Delete_Image"
       android:icon="@drawable/ic_trash">
    </item>
   
     <item
       android:id="@+id/share_image"
       android:title="@string/Share_Image"
       android:actionProviderClass="android.widget.ShareActionProvider">
     </item>  

</menu>

Grazie  :-)
« Ultima modifica: 29 Maggio 2013, 13:17:52 CEST da Smith »

Offline mirkus87

  • Utente junior
  • **
  • Post: 56
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S2
  • Play Store ID:
    Mirko Vitiello
  • Sistema operativo:
    Windows 7
Re:ShareActionProvider e Contextual Action Bar
« Risposta #1 il: 13 Giugno 2013, 00:24:13 CEST »
0
Hai provato a testare l'applicazione direttamente sul telefono? Ho notato che dall'emulatore non è possibile provare tale funzionalita', mentre provando sul telefono funziona

Offline rs94

  • Utente normale
  • ***
  • Post: 227
  • Respect: +21
    • Mostra profilo
  • Dispositivo Android:
    Sony Ericsson Xperia Arc S
  • Sistema operativo:
    Windows 8
Re:ShareActionProvider e Contextual Action Bar
« Risposta #2 il: 13 Giugno 2013, 09:22:11 CEST »
0
Posta il metodo createShareIntent() :)
L'unica certezza è il dubbio.
Dubitare di se stessi è il primo segno di intelligenza.