ActionBarSherlock 4.0.3をダウンロードして解凍し、library
フォルダーから新しいプロジェクトを作成しました。 Eclipseによると、src
フォルダーはエラーでいっぱいだったので、_Android-support-v4.jar
_の追加、ターゲットAPIの15の設定、コンパイラーのコンプライアンスレベルの1.6など、オンラインでさまざまな指示に従いました。それでも、プロジェクトには194個のエラーがあり、そのすべてが「呼び出しにはAPIレベル11が必要です(現在の最小値は7)」です。したがって、エラーの1つを見ると、次のことがわかります。
_@Override
public void invalidateOptionsMenu() {
getSherlock().dispatchInvalidateOptionsMenu();
}
public void supportInvalidateOptionsMenu() {
invalidateOptionsMenu();
//the previous line has this error in Eclipse:
//Call requires API level 11 (current min is 7): Android.app.Activity#invalidateOptionsMenu
}
_
invalidateOptionsMenu()
は前の関数でオーバーライドされているため、これは私には奇妙に見えますが、Eclipseは、新しいAPIレベルを必要とする関数について引き続き文句を言います。他のエラーを見ると、これは他の多くのエラーにも当てはまることがわかります。
私はJavaよりもPythonの経験が豊富なので、これが発生する原因については何も理解していません。助けていただければ幸いです。助けていただければ、原因についても説明していただけますか。これとあなたがそれを解決するために何をしたのですか?私は問題が発生するたびに誰かに尋ねたくはありません、私も学びたいです。
最小APIレベル7を使用しており、 invalidateOptionsMenu() はAPIレベル11まで存在しなかったため、デバイスがAPIレベル7を実行している場合、関数はエラーなしでオーバーライドできません。 t基本クラスでも使用可能であり、存在しない関数はオーバーライドできません。
Lintチェックを実行した後に私に起こりました。シャーロックアクションバープロジェクトを右クリックしてみてください-> Android tools-> Clear LintMarkers。
サポートjarで提供される ActivityCompat を使用します。
Dbrown0708回答を除いて、この回答はすべて間違っていますが、もっと宣言します
ActivityCompat サポートライブラリv4で提供されているように、下位APIでinvalidateOptionMenuを使用できます。
構文はinvalidateOptionsMenu(Activity activity);
です。
コードは
ActivityCompat.invalidateOptionsMenu(this);
レベル11以降のAPI
invalidateOptionsMenu();
import Android.support.v4.app.Fragment;をライブラリとして使用してみてください