2016-09-09 4 views
1

Ich versuche, eine Freigabe-Schaltfläche zu meiner Aktionsleiste hinzuzufügen. Das Symbol wird korrekt angezeigt. Wenn es gedrückt wird, passiert jedoch nichts. Es besagt, dass mein setShareIntent niemals verwendet wird. Wie benutze ich das?Set Share Intent wird nie verwendet

} @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); 

    } 
} 

Antwort

1

Erste Override Methode onOptionsItemSelected in Ihrer Tätigkeit.

Hier ist der Code, den Sie ausprobieren können.

@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..")); 
} 

Siehe die Dokumente: - Here

Nun, ich sehe keine Verwendung von Verfahren setShareIntent(). Und in Ihrem gibt es Ihnen Warnung "setShareIntent wird nie verwendet", weil Sie diese Methode nirgends in Ihrem Code aufrufen.

+0

Es sagt fehlende Rückkehr Aussage – abbanoob

+0

Überprüfen Sie es jetzt. Ich habe die Antwort aktualisiert. vergiss einfach, das früher zu schreiben. –

+0

Nein. Funktioniert immer noch nicht. Ich habe es auf Github, wenn Sie einen Blick werfen wollen – abbanoob

0

Sie sollten Listener:

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; 

}

Verwandte Themen