我很困惑在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代码将应用程序图标设置为主页图标感到困惑,并听取了点击次数。我该怎么做呢?
答案 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。
聆听点击次数
与上面的相同。