Android 这是什么R.id.家?
一个子活动的多个父活动工具栏后退按钮Android 这是什么R.id.家?,android,back-button,Android,Back Button,一个子活动的多个父活动工具栏后退按钮 @Override public boolean onOptionsItemSelected(@NonNull MenuItem item) { int id = item.getItemId(); if (id == android.R.id.home) { onBackPressed(); return true; } return super.onOptionsItemSelected(i
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
int id = item.getItemId();
if (id == android.R.id.home) {
onBackPressed();
return true;
}
return super.onOptionsItemSelected(item);
}
我必须覆盖此函数以实现“后退”按钮的功能,调用调用子级的同一父活动,但我不理解以下代码:
id==android.R.id.home
什么是
R.id.home
<代码>主页代表什么?我是否必须在任何地方使用相同的R.id.home
,我必须在我的应用程序中使用此后退按钮功能?R
是从Android资源包获取内容的方法id
告诉它你想从它那里得到一个id
(你也可以向它索要其他东西,比如string
s)
home
是您请求的实际ID。根据你的问题判断,这可能是一个按钮。ID在视图编辑器中设置
如果您对应用程序进行搜索,您可能会找到一个ID为“主页”的按钮。一个非常简短的答案是:一种访问资源的方法
资源可以是
文本视图
,按钮
,也可以是一些字符串
,可绘制的图像
R.id.home
表示某个特定的资源,它是MentuItem
,因此代码通过这种方式确定是否选择了MenuItem
-在菜单中可能有多个MenuItem
,代码将确定是否选择了id为的MenuItem
=home
在菜单
HTML文件中应该有如下内容:
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/home"
android:title="BlaBlaBla"
/>
...
...
重要提示:每个资源必须具有不同的标识符(id),以避免访问不明确
在这里,您可以找到有关R
的详细信息以及解释过的用例 您可能已经习惯使用R.id.whatever
来引用您为应用程序中的视图提供的id。给一个TextView
一个label
的ID,然后你可以通过查找视图来找到它,该视图的ID是R.ID.label
,诸如此类
该R
文件是根据您添加或声明的资源为您的应用程序生成的。但是android.R.id.home
是android的R
文件中的一个id-您可以将其视为一组单独的系统资源。它不会与您提供的任何“home”ID冲突,因为这将是R.ID.home
当您在工具栏上调用setHomeButtonEnabled
时,Android会添加自己的图标,并给它一个内部IDAndroid.R.ID.home
。这始终是home(主页)按钮的标识符,您可以在选择菜单项时通过检查该ID来检查是否按下了该按钮。详细说明!这解决了我的困惑。谢谢@cactustictacs