在ActionBarSherlock中设置Home Application Icon的方法

时间:2012-12-04 05:52:26

标签: android android-actionbar actionbarsherlock android-homebutton

我很困惑在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;
    }
}

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

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()中,我们必须通过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();中的oncreate()获取操作栏时,我收到此错误,

  

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

我对如何根据上面的ActionbarSherlock代码将应用程序图标设置为主页图标感到困惑,并听取了点击次数。我该怎么做呢?

1 个答案:

答案 0 :(得分: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

聆听点击次数

与上面的相同。