6

मैं शर्लक पुस्तकालय कार्यवाही बार है, जो आईसीएस कार्रवाई सलाखों के समान है का उपयोग कर रहा है, जहां मैं अटक कर रहा हूँ इसकैसे मैं अपने ShareActionProvider (श्रोताओं से) पाठ गतिशील रूप से प्रस्तुत करने के लिए दृश्य पेजर आदि

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 

    menu.add("Save") 
    .setIcon(R.drawable.ic_compose).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); 

    menu.add("Search") 
    .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT); 

    SubMenu sub = menu.addSubMenu("Options"); 
    sub.add(0, SubMenu.NONE, 0, "First"); 
    sub.add(0,SubMenu.NONE, 1, "Second"); 
    sub.add(0, SubMenu.NONE, 2, "Three"); 
    sub.getItem().setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_WITH_TEXT); 

    // HERE IS WHere I AM FACING PROBLEM IN 
    getSupportMenuInflater().inflate(R.menu.share_action_provider, menu); 
    // Set file with share history to the provider and set the share intent. 
    actionItem = menu.findItem(R.id.menu_item_share_action_provider_action_bar); 
    ShareActionProvider actionProvider = (ShareActionProvider) actionItem.getActionProvider(); 
    actionProvider.setShareHistoryFileName(ShareActionProvider.DEFAULT_SHARE_HISTORY_FILE_NAME); //this is BRILLIANT WAY TO AVOID REPEATation 
    actionProvider.setShareIntent(createShareIntent()); 

    return super.onCreateOptionsMenu(menu); 
} 

private Intent createShareIntent() { 
    Intent shareIntent = new Intent(Intent.ACTION_SEND); 
    shareIntent.setType("text/plain"); 

    //THIS TEXT IS WHAT I WANT TO OBTAIN DYNAMICALLY 
    shareIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Something goes here"); 
    return shareIntent; 
} 
है मिलता है

जब भी मैं एक श्रोता के अंदर actionProvider.setShareIntent(createShareIntent()); डालने की कोशिश या कहीं भी अन्य की तुलना में actionProvider.setShareIntent(createShareIntent()); मैं D/View(11753): onTouchEvent: viewFlags is DISABLED

मैं इस साझा करने कार्रवाई प्रदाता शामिल हैं और इनपुट करने के लिए अपना स्वयं का पाठ कि उपयोगकर्ता इनपुट पर उत्पन्न हो जाता है चाहता हूँ करना चाहते हैं मिलता है।

किसी भी इनपुट का स्वागत है।

यह काम नहीं करता जोड़ना

actionItem.setOnMenuItemClickListener(new OnMenuItemClickListener() { 
     @Override 
     public boolean onMenuItemClick(MenuItem item) { 
      Log.e("THIS IS NEVER CALLED", "??"); 
      return true; 
     } 
    }); 

मैं कैसे मिलता साझा करें बटन के लिए एक अद्यतन क्लिक किया जा रहा

उत्तर

-1

मैं इस तरह मेनू का उपयोग करें:

public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
    case android.R.id.your_share_button_name: 
     share(); 
     return true; 

    } 
} 

    private void share() { 
    Intent sharingIntent = new Intent(Intent.ACTION_SEND); 
    sharingIntent.setType("text/plain"); 
    sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, 
      "your text"); 
    sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, 
      "your subject"); 
    startActivity(Intent.createChooser(sharingIntent, "Share using")); 
} 

सब है कि। मेरा सुझाव है कि आप अपने res/menu फ़ोल्डर में xml में मेनू के सभी लेआउट डालें।

+0

आपको वास्तव में प्रश्न को ठीक से पढ़ने की जरूरत है। –

0

मैं एक android.support.v7.app.ActionBarActivity व्युत्पन्न के साथ एक समान मुद्दा मारा (हालांकि मुझे लगता है कि इस दृष्टिकोण किसी भी गतिविधि के लिए काम करना चाहिए) और मैं onPrepareOptionsMenu overrode और प्रभाव आप के बाद कर रहे थे मिल गया:

@Override 
public boolean onPrepareOptionsMenu(Menu menu) { 
    ShareActionProvider actionProvider = (ShareActionProvider) actionItem.getActionProvider(); 
    if (actionProvider != null) { 
     actionProvider.setShareIntent(createShareIntent()); 
    } 
    return super.onPrepareOptionsMenu(menu); 
} 
संबंधित मुद्दे