首次单击在MenuItem中无效 - Android - ActionBarSherlock

时间:2013-01-30 15:22:30

标签: android actionbarsherlock

我有这个活动

import android.os.Bundle;
import android.util.Log;

import com.actionbarsherlock.app.SherlockActivity;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuInflater;

public class AboutActivity extends SherlockActivity {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.about);

        getSupportActionBar().setIcon(R.drawable.logo);
        getSupportActionBar().setDisplayOptions(0, getSupportActionBar().DISPLAY_SHOW_TITLE);
    }

    @Override
    public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {
        MenuInflater inflater = getSupportMenuInflater();
        inflater.inflate(R.layout.menu_back, menu);
        return super.onCreateOptionsMenu(menu);
    }
    @Override
    public boolean onOptionsItemSelected(
            com.actionbarsherlock.view.MenuItem item) {
        switch (item.getItemId()) {
        case R.id.back:
            AboutActivity.this.finish();
            return true;
        default:
            return false;
        }
    }
}

这是我的R.layout.menu_back

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:id="@+id/back"
        android:icon="@drawable/arrow"
        android:showAsAction="ifRoom|withText"
    />
</menu>

我的问题是,当我第一次单击菜单中的后退按钮时它没有做任何事情,当我第二次点击它时它工作正常。有什么建议?

谢谢

1 个答案:

答案 0 :(得分:0)

您的代码对我有用。但是你应该将菜单xmls保存在菜单文件夹而不是布局文件夹中。你可以尝试返回super.onOptionsItemSelected(item);在切换指令的默认部分。