【发布时间】:2015-12-20 16:45:08
【问题描述】:
我在应用标题旁边的 actionBar 上有一个 < 按钮和一个 + 按钮。
我使用下面的代码创建了< 按钮
final ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setHomeAsUpIndicator(R.mipmap.back_to);
然后
@Override
public boolean onCreateOptionsMenu(Menu menu) { // for + button
// Inflate the menu; this adds items to the action bar if it is present.
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.create_new_details, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.home: // back to previous activity, < button
onBackPressed();
break;
case R.id.addDetails:
mClickedPosition = -1;
View menuItemView = findViewById(R.id.addDetails);
PopupMenu po = new PopupMenu(this, menuItemView); //for drop-down menu
po.getMenuInflater().inflate(R.menu.popup_details, po.getMenu());
po.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
Toast.makeText(getApplication(), "You Clicked : " + item.getTitle(), Toast.LENGTH_SHORT).show();
if ("Add Work Details".equals(item.getTitle())) {
Intent intent = new Intent(getApplication(), Add_Details_Information.class); // go to Details class
startActivityForResult(intent, PROJECT_REQUEST_CODE);
} else {
}
return true;
}
});
po.show(); //showing popup menu
}
return super.onOptionsItemSelected(item);
}
但只有 + 按钮有效。单击
【问题讨论】:
-
R.id.home必须是android.R.id.home。 -
@MikeM。如果 ActionBar 上只有一个按钮,为什么我可以使用
case R.id.home:? -
那么问题解决了吗?
-
当您在右侧创建该按钮时,您正在定义其 ID,因此它将位于您包的资源中;只是简单的
R。 Home Button是系统创建的,所以它的ID在系统Resources中;android.R.
标签: android button android-actionbar icons