2

我对在 ActionbarSherlock 上设置主页图标的方式感到困惑,当然我是这个 ActionBarSherlock 的新手。检查了许多来源,但无法获得如何设置主页图标。下面是我设置 ActionbarSherlock 的课程。

public abstract class BaseActivity extends SherlockActivity {

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuItem miPrefs = menu.add("Login");
        miPrefs.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
        miPrefs.setOnMenuItemClickListener(new OnMenuItemClickListener() {

            @Override
            public boolean onMenuItemClick(MenuItem item) {
                Intent loginIntent = new Intent(BaseActivity.this, LoginForm.class);
                startActivity(loginIntent);
                return true;
            }
        });
        return true;
    }
}

当然我知道如何在普通操作栏中将应用程序图标设置为主页图标。以下是我平时设置普通actionbar的方式。

public boolean onCreateOptionsMenu(Menu menu) {
    super.onCreateOptionsMenu(menu);
    MenuItem menu1 = menu.add(0, 0, 0, "Login");
    menu1.setIcon(R.drawable.image1);
    menu1.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
}

在 中onCreate(),我们必须通过 获取actionbar getActionBar(),然后使用actionbar.setDisplayHomeAsEnabled(true),可以将应用程序图标设置为主页图标。通过设置以下我们可以听到主页图标的点击。

public boolean onOptionsItemSelected(MenuItem item) {
    switch(item.getItemId()) {
        case android.R.id.home:
        // Here we can keep the code to get to the mainactivity.
        return true;
    }
}

另外,当我尝试通过ActionBar actionbar = getSupportActionBar();in获取操作栏时oncreate(),我收到此错误,

类型不匹配:无法从 com.actionbarsherlock.app.ActionBar 转换为 android.app.ActionBar

我对如何根据上面的 ActionbarSherlock 代码将应用程序图标设置为主页图标并监听点击感到困惑。我怎样才能做到这一点?

4

1 回答 1

2

使应用程序图标在 ActionBar 中可点击(使用 ABS)

@Override
public void onCreate() {
    super.onCreate();
    getSupportActionBar().setHomeButtonEnabled(true);
}

ABS 是一个库,因此当您想要访问它的功能时,您必须使用它自己的方法/类,不要与默认的 Android 方法/类(例如getActionBar()getSupportActionBar())混淆。示例代码的好地方是https://github.com/JakeWharton/ActionBarSherlock/tree/master/samples/demos

聆听点击

和你上面的一样。

于 2012-12-07T16:12:17.073 回答