Android片段-关于资源R.id.a_项定义的查询
我正在尝试创建并运行中显示的片段示例 我已经阅读了以下链接 并查看了谷歌资源库 在TitlesFragment.java类中的showDetails()方法中有一行 ft.更换(R.id.a_项目);//ft.replace(int);但是我有以下错误 _项无法解析或不是字段 该如何定义此资源Android片段-关于资源R.id.a_项定义的查询,android,android-fragments,Android,Android Fragments,我正在尝试创建并运行中显示的片段示例 我已经阅读了以下链接 并查看了谷歌资源库 在TitlesFragment.java类中的showDetails()方法中有一行 ft.更换(R.id.a_项目);//ft.replace(int);但是我有以下错误 _项无法解析或不是字段 该如何定义此资源 谢谢。这个id应该是片段的id,因为它发生在片段事务中。replace()。您应该定义id,或者: 在声明片段的布局文件中: 使用 或者将代码中的a_项替换为自定义的int,该值是您定义的常量 也许,
谢谢。这个id应该是
片段的id,因为它发生在片段事务中。replace()
。您应该定义id,或者:
- 在声明片段的布局文件中:
- 使用
- 或者将代码中的
a_项
替换为自定义的int
,该值是您定义的常量
也许,这是个错误。答案就在这里
链接消息的作者建议替换代码片段
if (index == 0) {
ft.replace(R.id.details, details);
} else {
ft.replace(R.id.a_item, details);
}
带代码片段
if (index == 0) {
ft.add(R.id.details, details);
} else {
ft.replace(R.id.details, details);
}
或者只是
ft.replace(R.id.details, details);
请注意,这些示例中的大多数已经过时,并且有许多错误。如果您注意到在同一个示例中,他们使用R.id.details使用findFragmentbyID,但没有具有该id的片段,则具有该id的是FrameLayout。还要注意,此示例中使用的API已被弃用
话虽如此,showDetails方法应该是这样的:
void showDetails(int index) {
mCurCheckPosition = index;
if (mDualPane) {
// We can display everything in-place with fragments, so update
// the list to highlight the selected item and show the data.
getListView().setItemChecked(index, true);
// Make new fragment to show this selection.
DetailsFragment details = DetailsFragment.newInstance(index);
// Execute a transaction, replacing any existing fragment
// with this one inside the frame.
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.details, details);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.commit();
} else {
// Otherwise we need to launch a new activity to display
// the dialog fragment with selected text.
Intent intent = new Intent();
intent.setClass(getActivity(), DetailsActivity.class);
intent.putExtra("index", index);
startActivity(intent);
}
}
可以添加一些额外的代码行,这样,单击已选择的项目就不会执行任何操作,而只会用相同的信息重新创建并替换相同的片段