5

私は developers.android.com の基本的なチュートリアルに従っていて、DisplayMessageActivity という名前のアクティビティを作成しました。これは、チュートリアルに示されているすべての仕様を備えた空のアクティビティです。参考までに、最小 SDK = API 8、ターゲット SDK = API 16、コンパイル = API 10 を使用しています。

次のことは、2 つのエラーがあることです。

  1. 「メソッド getActionBar() はタイプ DisplayMessageActivity に対して定義されていません
  2. 「ホームを解決できないか、フィールドではありません」

API を 14 に変更してみましたが、別の問題が発生しました。最小 API を 11 にする必要があります。

これでこれらの問題は解決しますが、主な問題は、非常に多くのデバイスがまだ Gingerbread や FroYo を使用していることです。彼らのために書くことはできませんか?もっと上に行く必要がありますか?彼らのために書く方法は?

4

2 に答える 2

5

まず、最新バージョンの Android に対してコンパイルしていることを確認する必要があります。API 10 用にコンパイルしているが 16 をターゲットにしているため、sdk のバージョンを更新する必要があります。そうすると何かが壊れる可能性があるため、安全のために最新の状態を維持することをお勧めします。これは、Eclipse でプロジェクトを右クリックし、[プロパティ] をクリックしてから [Android] をクリックすることを意味します。そこにある最も高いバージョンの API にチェックを入れます。最新バージョンなら Android 4.2 です。次に、AndroidManifest.xml で、android:targetSdkVersion選択したもの (私の場合は api 17) を設定します。

ここに画像の説明を入力

これにより、アプリは基本的に HoneyComb to JellyBean で実行できるようになります。ただし、このアプリは少なくとも froyo で実行する必要があります。この次の部分では、アプリをすべてのデバイスで実行できるようにします。

次のようなメソッドを作成します。

@TargetApi(Build.VERSION_CODES.HONEYCOMB)
    private void setupActionBar() {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
            // Show the Up button in the action bar.
            getActionBar().setDisplayHomeAsUpEnabled(true);
        }
    }

どの API で実行されているかを確認し、それがハニカム以上である場合にのみ、アクション バーを有効にします。そこから呼び出すonCreate()必要がなくなったので、そこにある getActionBarCall を取り出すonCreate()必要があります。

ホームが有効になっていないのは、単に間違ったプロジェクト ターゲットであったか、書き忘れてandroid.R.id.home代わりに を書いた可能性がありますR.id.home

最後に、これらすべての変更を行って、プロジェクトをクリーンアップする必要があります ([プロジェクト] -> [クリーン])。

于 2012-12-09T04:38:29.923 に答える
0

このhttp://actionbarsherlock.com/を確認してください。低 API レベルでユーザー アクションバーを使用できるようになります。

于 2012-12-09T04:32:44.853 に答える