ターゲット市場の大部分でデバイスにメニュー ボタンがなくなったため、API 8+ アプリを更新しています。
私の解決策が機能していません。
だから、私はActionBarSherlockを使っています。
必要なボタンを Sherlock メニューに移動しましたが、問題なく動作します。
しかし、私が変更しているアクティビティには、返されたデータを変更するスピナーがありました。スピナーを Sherlock メニューに追加しようとしています (表示されます) が、クリックをキャプチャできません。
これがスクリーンショットです。一番上のスピナーは新しいものです。紫色のブロック内のすべてが比較対象です。
これは私が使用しているコードで、メニューを設定してクリックをキャプチャします。
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
menu.add(0, 1, 1, "Add Sleep Record").setIcon(R.drawable.btn_add)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
menu.add(0, 2, 2, "Create Report").setIcon(R.drawable.ic_listview_pdf)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
Spinner spinner = new Spinner(getSherlockActivity().getSupportActionBar()
.getThemedContext());
ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(getSherlockActivity()
.getSupportActionBar().getThemedContext(), R.layout.sherlock_spinner_item,
new String[]{"Last 7 days", "Last month", "Last 6 months", "Last year"});
spinnerArrayAdapter.setDropDownViewResource(R.layout.sherlock_spinner_dropdown_item);
spinner.setAdapter(spinnerArrayAdapter);
menu.add(0, 3, 3, "Date Range")
.setActionView(spinner).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
}
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case 1:
Intent i=new Intent(getActivity(), SleepRecordAddActivity.class);
startActivity(i);
return true;
case 2:
tryCreateReport();
return true;
case 3:
String boop ="I am here";
String x= boop;
return true;
}
return false;
}
Spinner ID を 3 に設定しましたが、onOptionsItemSelected のスイッチが 3 でトリガーされることはありません。
この「アクティビティ」は、SherlockFragmentActivity から拡張された SherlockFragment です。