1

私は私の主な活動にこのコードを持っています

public boolean onOptionsItemSelected(MenuItem item) {

   int itemId = item.getItemId();

   if (itemId == R.id.menu_edit) {

        CharSequence title = item.getTitle();
        Log.d("onOptionsItemSelected", "menu_edit title=" + title);
        if(title=="Edit") {
            // switch to RUn
            item.setTitle("Run");
        } else {
            // switch to Edit
            item.setTitle("Edit");
        }
    }

    return super.onOptionsItemSelected(item);

}

ボタンはこのように定義されています

    android:id="@+id/menu_edit"
    android:orderInCategory="102"
    android:showAsAction="ifRoom|withText"
    android:title="Edit"/>

基本的な考え方は、「編​​集」ボタンを押すと「実行」に切り替わり、元に戻るというものです。最初に押したときを除いて、何もしません。その後は正常に動作します。これはメニューではなくアクションバーの項目であることに注意してください。アクションバーで。

setTitle を機能させるために最初のクリックを取得する方法を誰かが提案できますか?

ありがとう

4

2 に答える 2

2

交換:

if(title=="Edit") {

と:

if(title.equals( "Edit" ) ) {

初めて動作します。

于 2013-01-05T04:52:46.683 に答える
0

equalignorecase は cps オン/オフ ボタンの大文字と小文字を無視するため、equals の代わりに equalIgnoreCase を使用することをお勧めします...

于 2013-01-05T12:32:49.840 に答える