2

私はAndroid開発にまったく慣れていないので、ICS +デバイスのみをターゲットにしたいので、「ストック」ActionBarを使用して(つまり、ActionBarSherlockを使用しないで)、 ShareActionProviderで ActionBar を構築しようとしています。

履歴機能を有効にしたい (デフォルト) が、共有ボタンの近くに最もよく使用されるインテント アイコンを配置したくありません。
私は ActionBarSherlock を使用してこれが可能であることを知っていますが、私が言ったように、在庫の ActionBar でそれをやろうとしているので、この問題を克服する方法を知りたいです。

次の 2 つの関連する回答を見つけました:
共有アクション プロバイダーの近くに共有アクション (最も使用する) アイコンを非表示にする方法は?
Android: 履歴のない ShareActionProvider

しかし、Android ソースを編集して、アイコンを非表示にする ActionBar の別の「バージョン」を作成する方法を明確に述べているものはありません。
つまり、2 つの回答を組み合わせて、最も使用頻度の高いアイコンを非表示にする修正済みの ActionBar クラスをアプリケーションに組み込むにはどうすればよいでしょうか?

編集: 3 つのクラスShareActionProviderActivityChooserView、およびActivityChooserModeを拡張して、Eclipse でエラーを発生させない修正バージョンを構築するため
に実行する必要がある操作の簡単なリストを探しています。私の知る限り、これは Web のどこにも文書化されていません (Google は結果を提供しません)。

4

2 に答える 2

0
  1. ソース ファイル ActivityChooserView.java および ShareActionProvider.java ファイルをhttps://android.googlesource.com/platform/frameworks/support.gitからプロジェクトにコピーします。
  2. インポートを修正するには、両方のファイルで Eclipse で Ctrl+Shift+O を実行します。ShareActionProvider.java で、ActivityChooserView.java のインポートを新しいファイルに変更します。
  3. onCreateOptionsMenu() を実装したファイルの import ShareActionProvider を、このファイルをコピーした場所に変更します。
  4. menu.xml で、ShareActionProvider クラスを新しいものに修正します。
  5. ActivityChooserView.java で if( activityCount==1 || activityCount > 1 && historySize > 0 ) を探します。if(false) に変更します

これで準備完了です。

于 2014-03-15T18:21:52.597 に答える