2016-09-09 3 views
1

Я пытаюсь добавить кнопку совместного доступа в свой экран действий. Значок отображается правильно, но при нажатии ничего не происходит. В нем говорится, что мой setShareIntent никогда не используется. Как я могу это использовать?Set Share Intent никогда не используется

} @Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.mainmenu, menu); 
    // Locate MenuItem with ShareActionProvider 
    MenuItem item = menu.findItem(R.id.menu_item_share); 
    // Fetch and store ShareActionProvider 
    mShareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider(item); 
    // Return true to display menu 
    return true; 


} 



// Call to update the share intent 
private void setShareIntent(Intent shareIntent) { 
    if (mShareActionProvider != null) { 
     mShareActionProvider.setShareIntent(shareIntent); 

    } 
} 

ответ

1

Первый Override метод onOptionsItemSelected в вашей деятельности.

Вот код, который вы можете попробовать.

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.mainmenu, menu); 
    MenuItem item = menu.findItem(R.id.menu_item_share); 
    mShareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider(item); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    if (item.getItemId() == R.id.menu_item_share) { 
     doShare(); 
    } 
    return super.onOptionsItemSelected(item); 
} 

private void doShare() { 

    Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND); 
    shareIntent.setType("text/plain"); 

    shareIntent.putExtra(Intent.EXTRA_SUBJECT, "I'm Sharing Data"); 
    shareIntent.putExtra(Intent.EXTRA_TEXT, "Here is my data"); 

    startActivity(Intent.createChooser(shareIntent, "Share myData to..")); 
} 

Сошлитесь Docs: - Here

Ну, я не вижу никакого использования метода setShareIntent(). И, в вашем, это дает вам предупреждение «setShareIntent никогда не используется», потому что вы не вызываете этот метод в любом месте вашего кода.

+0

Говорят, что отсутствующее заявление о возврате – abbanoob

+0

Проверьте это сейчас. Я обновил ответ. просто забудьте написать это раньше. –

+0

Нет. Все еще не работает. Я имею его на Github, если вы хотите взглянуть – abbanoob

0

Вы должны установить слушателя:

public boolean onCreateOptionsMenu(Menu menu) { 
MenuInflater inflater = getMenuInflater(); 
inflater.inflate(R.menu.mainmenu, menu); 
// Locate MenuItem with ShareActionProvider 
MenuItem item = menu.findItem(R.id.menu_item_share); 
item.setOnMenuItemClickListener(new OnMenuItemClickListener() { 

    @Override 
    public boolean onMenuItemClick(MenuItem item) { 
     // do something 
     return true; 
    } 
}); 
// Fetch and store ShareActionProvider 
mShareActionProvider = (ShareActionProvider)MenuItemCompat.getActionProvider(item); 
// Return true to display menu 
return true; 

}

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