0

フローズンヨーグルト以下でうまく機能するアプリ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")

初心者の間違い、私はそれを知っていました;-)

4

2 に答える 2

1

文字列の比較にはString.equals(String)を使用します。正しいアプローチは

if ("Save".equals(item.getTitle()))

メニュー項目にIDを付け、代わりにどちらがクリックされるかを判断するためにそれを使用することを検討してください。

于 2012-09-18T08:00:18.767 に答える
-2

これはそれを機能させました:

if (item.getTitle()=="Save")

それ以外の

if (item.toString()=="Save")
于 2012-09-18T07:47:21.730 に答える