2013-02-07 11 views
5

के रूप में देखकर मैं ShareActionProviderActionBar पर विस्थापित करना चाहता हूं, लेकिन कस्टम लुक & महसूस करें। सीमाओं के बिना और दाईं ओर सबसे अधिक उपयोग किए जाने वाले ऐप आइकन के बिना केवल एक साधारण साझा आइकन। लेकिन अधिकांश उपयोग किए गए अनुप्रयोगों के साथ पॉपअप मेनू प्रदान करना। क्या ShareActionProvider को लागू किए बिना इसे करने का कोई आसान तरीका है?एक आइकन के साथ ShareActionProvider - सरल actionitem

उत्तर

-1

ठीक है तो एक्शनबैरशेलॉक पर ध्यान दिए बिना यह देखने के लिए कि क्या आपका इरादा सही तरीके से बना रहा है, एबीएस सामान्य कोडर के समान कोड का उपयोग करता है, इसलिए देखें कि जब आप इस कोड को निष्पादित करते हैं तो आप जिस ऐप को दिखाना चाहते हैं।

Intent I= new Intent(Intent.ACTION_SEND); 
I.setType("text/plain"); 
I.putExtra(android.content.Intent.EXTRA_TEXT, "My Test Text"); 

startActivity(Intent.createChooser(I,"Share using ...")); 

ऐप की कि सादा पाठ को संभालने के सभी दिखाई देगा अगर फेसबुक, या जो भी आप उम्मीद कर रहे हैं वहाँ तो उन एप्लिकेशन की प्रकार आप पंजीकृत किया है (सादा/पाठ के लिए ACTION_SEND आशय का समर्थन नहीं करते नहीं है)। (फेसबुक करता है, लेकिन इसके बारे में एक मिनट में)

एबीएस के पास शेयर एक्शन प्रदाता का उपयोग करने के लिए एक नमूना है, लेकिन यह एक फोटो भेजने का प्रयास करता है, न कि एक टेक्स्ट संदेश (स्टेटस अपडेट) सेटअप जो आपको उपयोग करना चाहिए इस

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate your menu. 
    getSupportMenuInflater().inflate(R.menu.share_action_provider, menu); 

// Set file with share history to the provider and set the share intent. 
MenuItem item = menu.findItem(R.id.menu_item_share_action_provider_action_bar); 
ShareActionProvider provider = (ShareActionProvider) item.getActionProvider(); 
       provider.setShareHistoryFileName(ShareActionProvider.DEFAULT_SHARE_HISTORY_FILE_NAME); 
// Note that you can set/change the intent any time, 
// say when the user has selected an image. 
provider.setShareIntent(createShareIntent()); 

return true 
} 

और यहाँ की तरह आशय ऐप की मेल खाते हैं और उन्हें नमूना

private Intent createShareIntent() { 
     Intent shareIntent = new Intent(Intent.ACTION_SEND); 
     shareIntent.setType("image/plain"); 
     Uri uri = Uri.fromFile(getFileStreamPath("shared.png")); 
     shareIntent.putExtra(Intent.EXTRA_STREAM, uri); 
     shareIntent.putExtra(Intent.EXTRA_TITLE, "This is an android icon"); 
     return shareIntent; 
    } 

से बाहर सूची का उपयोग किया जाएगा लेकिन आप इसे होना चाहते हैं

private Intent createShareIntent() { 
     Intent I= new Intent(Intent.ACTION_SEND); 
     I.setType("text/plain"); 
     I.putExtra(android.content.Intent.EXTRA_SUBJECT, "TEST - Disregard"); 
     I.putExtra(android.content.Intent.EXTRA_TEXT, Uri.parse("http://noplace.com")); 
    } 

इससे आपको एबीएस में वही सूची मिलनी चाहिए जो मैंने उपरोक्त चयनकर्ता के साथ दिखाए गए छोटे परीक्षण स्टब में किया था।

+4

मुझे पता है कि एबीएस के साथ ShareActionProvider भी कैसे बनाएं। लेकिन एक्शनबार पर अपनी उपस्थिति बदलने के बारे में सवाल था। सीमाएं निकालें और सही आइकन हटाएं - इसलिए यह सरल कार्रवाई के रूप में दिखाई देगा। लेकिन सभी अतिरिक्त कार्यक्षमता प्रदान करता है (इतिहास - ड्रॉपडाउन में) – pcu

संबंधित मुद्दे