2017-02-28 3 views
1

내가ShareActionProvider 두 아이콘 시스템 아이콘과 공유 아이콘

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    tools:context="com.example.esir.jualeader.aspirant.MainActivity"> 
    <item 
     android:id="@+id/action_settings" 
     android:orderInCategory="100" 
     android:title="@string/action_settings" 
     app:showAsAction="never" /> 
    <item 
     android:id="@+id/action_finish" 
     android:orderInCategory="200" 
     android:title="Exit" 
     app:showAsAction="never" /> 
    <item 
     android:id="@+id/share" 
     android:title="Share" 
     app:actionProviderClass="android.support.v7.widget.ShareActionProvider" 
     app:showAsAction="ifRoom" 
     /> 
</menu> 

private ShareActionProvider mShareActionProvider; 
private void setShareIntent(Intent shareIntent){ 

    if (mShareActionProvider != null) { 
     mShareActionProvider.setShareIntent(shareIntent); 
    } 
} 
private Intent createShareIntent(){ 
    Intent actionsend=new Intent(); 
    actionsend.setAction(Intent.ACTION_SEND); 
    actionsend.putExtra(Intent.EXTRA_TEXT,"Please Download Jua Leader App From : http://mstarsinnovations.com"); 
    actionsend.setType("text/plain"); 
    return Intent.createChooser(actionsend,"Share The Jua Leader Using"); 
} 
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.menu_main,menu); 
    // Locate MenuItem with ShareActionProvider 
    MenuItem item = menu.findItem(R.id.share); 
    // Fetch and store ShareActionProvider 
    mShareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider(item); 
    setShareIntent(createShareIntent()); 
    // Return true to display menu 
    return true; 
} 

[결과 아래의 코드를 사용하여 공유 작업을 추가하고을 보여줍니다에 나타낸 바와 같이 보이는 공유 아이콘 이미지 enter image description here

다른 아이콘이 나타나는 이유 유일한 클릭 가능한 아이콘입니다. 어떻게 제거 할 수 있습니까? 도움을 주시면 감사하겠습니다.

+0

'ShareActionProvider'는 어떻게 생겼다고 생각하십니까? 공유 버튼을 원하면'ShareActionProvider'가 필요 없습니다. – ianhanniballake

+0

정확히 무엇이 필요합니까 ?? –

+0

당신은 어떻게 보이고 싶습니까? – ianhanniballake

답변

2

정확히 ShareActionProvider의 모습입니다. 공유 버튼 만 원하면 ShareActionProvider을 사용 중지하십시오. 즉, 제거하기 위해 XML을 업데이트 ShareActionProvider :

<item 
    android:id="@+id/share" 
    android:title="Share" 
    android:icon="@drawable/share" 
    app:showAsAction="ifRoom" 
    /> 

(당신은 추가해야합니다 자신의 앱으로 연결 @drawable/sharematerial design icons에서 하나). 메뉴 항목이 도청 될 때

는 그런 다음 주를 시작합니다 onOptionsItemSelected() 메소드를 오버라이드 (override) :

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch(item.getMenuId()) { 
    case R.id.share: 
     Intent shareIntent = createShareIntent(); 
     startActivity(shareIntent); 
     return true; 
    default: 
     return super.onOptionsItemSelected(item); 
    } 
} 

당신은 당신의 메뉴를 팽창 제외 onCreateOptionsMenu에서 작업을 수행 할 필요가 없습니다.

+0

멋진 ... 그때 ShareActionProvider의 사용은 무엇입니까 ??? –

+0

[docs] (https://developer.android.com/reference/android/support/v7/widget/ShareActionProvider.html#rankings)는 다음과 같이 분명히 말합니다. "공유 작업 제공자는 각 공유 대상에 대한 순위를 유지하지만, 사용자가 타겟을 선택하는 빈도에 따라 더 자주 사용자가 타겟을 선택할수록 순위가 높아지고 ** 가장 많이 사용되는 타겟이 기본 타겟으로 앱 표시 줄에 나타납니다 ** ** " – ianhanniballake

+0

설명을 주셔서 감사합니다 –

0

최근에 공유 한 앱 (아이콘 오른쪽에 표시된 아이콘)과 콘텐츠가 공유되었음을 나타냅니다.