要更新ActionBar图标,可以尝试以下几种方法:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_refresh) {
// 执行刷新操作
return true;
}
return super.onOptionsItemSelected(item);
}
// 在需要更新ActionBar图标的地方调用invalidateOptionsMenu()方法
invalidateOptionsMenu();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_refresh);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == android.R.id.home) {
// 执行刷新操作
return true;
}
return super.onOptionsItemSelected(item);
}
// 在需要更新ActionBar图标的地方调用setHomeAsUpIndicator()方法
getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_refresh);
private Toolbar toolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setHomeAsUpIndicator(R.drawable.ic_refresh);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == android.R.id.home) {
// 执行刷新操作
return true;
}
return super.onOptionsItemSelected(item);
}
// 在需要更新ActionBar图标的地方调用setNavigationIcon()方法
toolbar.setNavigationIcon(R.drawable.ic_refresh);
这些方法中的任意一种都可以用于更新ActionBar图标,具体使用哪种方法取决于你的应用程序的结构和需求。