2015-05-05 5 views
0

У меня есть ShareActionProvider в моем ActionBar, и я следил за примером Google для него в tee. Мне любопытно, почему это невозможно?ShareActionProvider не доступен для клики?

EDIT: Я знаю, что если я удалю функцию shareHistory, она станет интерактивной, но я не хочу сохранять общую историю.

XML:

<item 
    android:id="@+id/menu_item_share" 
    android:actionProviderClass="android.widget.ShareActionProvider" 
    android:icon="@android:drawable/ic_menu_share" 
    android:showAsAction="ifRoom" 
    android:title="Share" /> 

Java код:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.menu_legislation, menu); 

    MenuItem item = (MenuItem)menu.findItem(R.id.menu_item_share); 

    sharingIntent = new Intent(Intent.ACTION_SEND); 
    sharingIntent.setType("text/plain"); 
    sharingIntent.putExtra(Intent.ACTION_ALL_APPS, "http://www.anilinkz.com/"); 

    mSharedActionProvider = (ShareActionProvider)item.getActionProvider(); 

    setShareIntent(sharingIntent); 

    return true; 
} 

public void setShareIntent(Intent shareIntent) { 
    if (mSharedActionProvider != null) { 
     mSharedActionProvider.setShareIntent(shareIntent); 
     mSharedActionProvider.setShareHistoryFileName(null); 
    } 
} 
+1

'ACTION_ALL_APPS' является' действие Intent'. Это не ключ к дополнительному, а 'ACTION_ALL_APPS' не является частью протокола ACTION_SEND. Кроме того, возможно, устройство или эмулятор, который вы тестируете, ничего не поддерживает 'ACTION_SEND'' text/plain', хотя это было бы необычно. – CommonsWare

+0

Я тестирую галактику s4. Единственная причина, по которой я сделал ACTION_ALL_APPS, заключалась в том, чтобы успокоить фейсбук, поскольку они не позволяют EXTRA_TEXT. Он не работает с EXTRA_TEXT. – cj1098

ответ

0

Попробуйте это:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.menu_legislation, menu); 

    MenuItem item = (MenuItem)menu.findItem(R.id.menu_item_share); 

    sharingIntent = new Intent(Intent.ACTION_SEND); 
    sharingIntent.setType("text/plain"); 
    sharingIntent.putExtra(Intent.EXTRA_TEXT, "http://www.anilinkz.com/"); 

    mSharedActionProvider = (ShareActionProvider) item.getActionProvider(); 

    setShareIntent(sharingIntent); 

    return true; 
} 

public void setShareIntent(Intent shareIntent) { 
    if (mSharedActionProvider != null) { 
     mSharedActionProvider.setShareIntent(shareIntent); 
    } 
} 
+0

Единственное, что вы сделали, это удалить setShareFileHistoryName() ... Мне не нужна общая история. Это делает его интерактивным, но я уже знал, что :( Я отредактирую свое сообщение, спасибо! – cj1098

Смежные вопросы