将图标添加到片段操作栏并获取对它的引用
Add icon to fragment actionbar and get reference to it
我没有自定义栏,我只是给actionbar设置了一个删除图标,但现在我需要给这个图标设置OnClickListener。如果没有自定义栏,我怎么能这样做呢?这可能吗?还有左边没有图标,可以设置在右边吗?
activity.getSupportActionBar().setIcon(R.drawable.ic_delete);
我使用导航抽屉,当我使用自定义栏时切换图标绝望。
actionBar.setDisplayHomeAsUpEnabled(true);
然后你需要覆盖activity方法:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
onIconClicked();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
要在右侧创建一个项目,你需要创建自定义菜单,其实很简单。
是如何执行此操作的示例
您似乎想将 ActionBar 的主页按钮设置为删除按钮。我建议不要这样做,因为在我看来这是一个糟糕的设计决定。此外,您还想在右侧显示按钮,这可以通过使用菜单以非常直观的方式完成。
添加ActionBar动作请看官方文档here
基本上你需要添加一个 XML 菜单资源并像这样声明你的操作:
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/action_delete"
android:icon="@drawable/ic_delete"
android:title="@string/action_delete"
app:showAsAction="always"/>
</menu>
然后在您的 Activity 中覆盖 OnOptionsItemSelected 方法:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_delete:
// Do your stuff here
return true;
default:
return super.onOptionsItemSelected(item);
}
}
我没有自定义栏,我只是给actionbar设置了一个删除图标,但现在我需要给这个图标设置OnClickListener。如果没有自定义栏,我怎么能这样做呢?这可能吗?还有左边没有图标,可以设置在右边吗?
activity.getSupportActionBar().setIcon(R.drawable.ic_delete);
我使用导航抽屉,当我使用自定义栏时切换图标绝望。
actionBar.setDisplayHomeAsUpEnabled(true);
然后你需要覆盖activity方法:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
onIconClicked();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
要在右侧创建一个项目,你需要创建自定义菜单,其实很简单。
您似乎想将 ActionBar 的主页按钮设置为删除按钮。我建议不要这样做,因为在我看来这是一个糟糕的设计决定。此外,您还想在右侧显示按钮,这可以通过使用菜单以非常直观的方式完成。
添加ActionBar动作请看官方文档here
基本上你需要添加一个 XML 菜单资源并像这样声明你的操作:
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/action_delete"
android:icon="@drawable/ic_delete"
android:title="@string/action_delete"
app:showAsAction="always"/>
</menu>
然后在您的 Activity 中覆盖 OnOptionsItemSelected 方法:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_delete:
// Do your stuff here
return true;
default:
return super.onOptionsItemSelected(item);
}
}