多くのデバイス用に統一されたものを作成したいので、ActionBarSherlock を使用しています。Android 2 バージョンまでのデバイスをサポートしたいと考えています。テストのために私は
-LG Nexus 4 --Android 4.2.2 を実行 -Samsung Galaxy Ace --Android 2.3.3 を実行
abs の使用を開始するために、abs に同梱されているサンプルからいくつかのサンプル コードを取得しました。主に ActionItems.java サンプル ファイルを使用しました。使用した削除ボタンは 1 つだけです。適切なドローアブルを res フォルダーにコピーしました (スクリーンショットを参照)。(アルファチャンネルで保存された 36x36 ピクセルの ldpi バージョンを作成しました)
問題は、削除アイコンが Android 2.3.3 の Samsung Ace に表示されないことです。スクリーンショットを見る コードのどこが悪いのですか? これが私のコードです:
@SuppressLint("NewApi")
public class MainActivity extends SherlockActivity implements Observer {
public static int THEME = R.style.Theme_Sherlock_Light;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fillTableViewWithEvents();
setTheme(R.style.Theme_Sherlock);
setTitle(...);
}
public boolean onCreateOptionsMenu(Menu menu) {
//Used to put dark icons on light action bar
boolean isLight = THEME == R.style.Theme_Sherlock_Light;
MenuItem.SHOW_AS_ACTION_WITH_TEXT);
menu.add("Delete")
.setIcon(isLight ? R.drawable.ic_action_delete : R.drawable.ic_action_delete)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
return true;
}
AndroidManifest.xml で、この行を追加しました (古い @style ステートメントを置き換えます
android:theme="@style/Theme.Sherlock"