フローズンヨーグルト以下でうまく機能するアプリOBNytを作成しましたが、ICS以上では、メニューボタン(更新へのリンク、画像アクティビティへのリンク、検索アクティビティへのリンク)をクリックしても何も起こりません。ICSのボタンをクリックすると、電話のライトのボタンが表示されますが、フローズンヨーグルトのようにアクティビティが開きません。ActionBarSherlockはほとんど変更していません。トーストメッセージから、クリックがICSに登録されていることがわかります。しかし、活動は始まりません。LogCatで私は
window already focused ignoring focus gain of com.android.internal.view.iinputmethodclient
ボタンの1つをクリックするたびに。問題が発生する可能性があるのは、おそらくこのあたりだと思います。
public boolean onCreateOptionsMenu(Menu menu) {
//Used to put dark icons on light action bar
boolean isLight = true;
menu.add("Save")
.setIcon(isLight ? R.drawable.ic_stilling1 : R.drawable.ic_stilling1)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
menu.add("Search")
.setIcon(isLight ? R.drawable.ic_search_inverse : R.drawable.ic_search)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
menu.add("Opdatér")
.setIcon(isLight ? R.drawable.ic_refresh_inverse : R.drawable.ic_refresh)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
return true;
}
public boolean onOptionsItemSelected(MenuItem item) {
//This uses the imported MenuItem from ActionBarSherlock
Toast.makeText(this, "Got click: " + item.toString(), Toast.LENGTH_SHORT).show();
if (item.toString()=="Save"){
startActivity (new Intent(getApplicationContext(), F3Activity.class));
return true;
}
if (item.toString()=="Search"){
startActivity (new Intent(getApplicationContext(), SearchActivity.class));
return true;
}
if (item.toString()=="Opdatér"){
startActivity (new Intent(getApplicationContext(), ABSTabsViewPagerActivity.class));
return true;
}
return true;
}
ご覧のとおり、私はプログラミングの初心者です:-) ICSでボタンを反応させる方法について誰かが手がかりを持っていますか?私は自分の古いHTCDesireでJellyBeanをテストし、友人のSamsungGalaxyIIおよびIIIでICSをテストしましたがまったく同じ結果になりました。
[編集]:これで動作しました:
if (item.getTitle()=="Save")
それ以外の
if (item.toString()=="Save")
初心者の間違い、私はそれを知っていました;-)