2015-10-22 50 views
-1

嗨,這是我的代碼,當我運行應用程序,並單擊圖標共享,不顯示共享呼叫分享意圖在片段actionbar

如何解決它?

import android.support.annotation.Nullable; 
import android.support.v4.app.Fragment; 


public class BioActivity extends Fragment { 

    private MenuItem mRefreshMenuItem; 


    @ 
    [email protected] Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    return inflater.inflate(R.layout.activity_bio, container, false); 

    } 

    @ 
    Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setHasOptionsMenu(true); 
    } 

    @ 
    Override 
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    // TODO Auto-generated method stub 
    super.onCreateOptionsMenu(menu, inflater); 
    inflater.inflate(R.menu.share, menu); 
    } 

    @ 
    Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
    // handle item selection 
    switch (item.getItemId()) { 
     case R.id.action_share: 
     TextView textView = (TextView) getView().findViewById(R.id.text_bio); 
     String string = textView.getText().toString(); 

     Intent intent = new Intent(Intent.ACTION_SEND); 
     intent.setType("text/plain"); 
     intent.putExtra(Intent.EXTRA_TEXT, string); 
     return true; 
     default: 
     return super.onOptionsItemSelected(item); 
    } 
    } 
} 

...

+0

您沒有調用'startActivity'。調用'getActivity()。startActivity(..)',因爲它的一個片段 – Emil

+0

我試着getActivity();和startActivity();兩者都不起作用 –

回答

2

你忘了包括startActivity(intent);這是一段代碼,將執行的意圖,從而啓動共享對話框。 一個更好的解決辦法是使用選配: startActivity(Intent.createChooser(intent, getResources().getText(R.string.send_to)));

您可以找到Android文檔在共享的詳細信息:http://developer.android.com/training/sharing/send.html

+0

i add startActivity(intent);但再次不運行意圖 –

+0

是否調用onOptionItemSelected?你Activity上的onOptionItemSelected應該返回false,因爲Activity沒有處理它。 PS可以刪除// TODO當你實現一個函數時自動生成的方法存根。提示:開始使​​用Android Studio! – Roel

+0

無法修復: - (((( –

0

您好我以前用這種方式,和它的作品,嘗試自己:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getSupportMenuInflater().inflate(R.menu.activity_readinglist_activity, 
      menu); 

    MenuItem actionItem = menu.findItem(R.id.reading_share); 
    ShareActionProvider actionProvider = (ShareActionProvider) actionItem 
      .getActionProvider(); 

    Intent intent = getDefaultShareIntent(); 
    if (intent != null) 
     actionProvider.setShareIntent(intent); 

    return super.onCreateOptionsMenu(menu); 
} 

private Intent getDefaultShareIntent() { 

    Intent intent = new Intent(Intent.ACTION_SEND); 
    intent.setType("text/plain"); 
    intent.putExtra(Intent.EXTRA_SUBJECT, titleR); 
    intent.putExtra(Intent.EXTRA_TEXT, handleR); 
    return intent; 
} 
+0

getSupportMenuInflater()並返回super.onCreateOptionsMenu(menu);出錯?! –