2016-02-28 3 views
1

Я пытаюсь получить рабочую кнопку «share» в строке заголовка. Первоначально я придерживался совета на developer.android.com для этого, но получил исключение, сказав, что мне нужно использовать MenuItemCompat. Я делаю это, но теперь моя кнопка «share» даже не «нажимает». Мой соответствующий код является:ShareActionProvider из support.v7 не нажав

public boolean onCreateOptionsMenu(Menu menu) { 
     Log.d("CYCLE:","onCreateOptionsMenu()"); 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.menu_to_do_list, menu); 
     // Locate MenuItem with ShareActionProvider 
     MenuItem item = menu.findItem(R.id.action_share); 

     // Fetch and store ShareActionProvider 
     mShareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider(item); 
     setShareIntent(); 
     mShareActionProvider.setShareHistoryFileName("my_share_history.xml"); 
     return true; 
    } 

public void setShareIntent(){ 
    Intent shareIntent = new Intent(Intent.ACTION_SEND); 
    shareIntent.setType("text/plain"); 
    shareIntent.putExtra(Intent.EXTRA_TEXT, "some text to share"); 
    mShareActionProvider.setShareIntent(shareIntent); 
} 

и мой пункт меню в XML является:

<item android:id="@+id/action_share" 
    android:title="Share" 
    app:showAsAction="ifRoom" 
    app:actionProviderClass="android.support.v7.widget.ShareActionProvider"/> 

я упускаю что-то, чтобы сделать эту кнопку быть интерактивными? (Я даже не говорю о функциональности еще. Просто возможность быть нажата (вы знаете, как и с щелчком/коснувшись анимации). спасибо.

+0

call setShareIntent() в конце updateShareInfo(). – Harry

+0

Неплохо, я вставил его и удалил комментарии, и среди них я удалил вызов. В любом случае, я изменил код немного, но кнопка все еще не доступна для просмотра .... – fiacobelli

ответ

0

Установили ли вы share Intent? Без доли Intent, Android не будет знать, что именно должно быть передано провайдером.

+0

Я добавил полный код, который я тестирую. Я обновляю/создаю намерение в методе onCreateOptionsMenu. – fiacobelli