【发布时间】:2015-05-20 15:12:47
【问题描述】:
我有一个包含 3 个项目的虚拟内容列表,但我希望每个项目都打开自己的活动,而不是将数据传递给详细信息片段。单击特定列表项时,如何用我自己的列表片段替换主片段?是否可以对我的每件商品使用if (position == x) 声明?下面的代码替换了详细片段,但我想替换主片段。我没有看到任何关于这方面的教程,因为我遇到的所有教程都与替换细节片段相关,而不是主片段。
@Override
public void onItemSelected(String id) {
if (mTwoPane) {
Bundle arguments = new Bundle();
arguments.putString(ItemDetailFragment.ARG_ITEM_ID, id);
ItemDetailFragment fragment = new ItemDetailFragment();
fragment.setArguments(arguments);
getSupportFragmentManager().beginTransaction()
.replace(R.id.item_list, fragment)
.commit();
} else {
Intent detailIntent = new Intent(this, ContinentsListActivity.class);
detailIntent.putExtra(ItemDetailFragment.ARG_ITEM_ID, id);
startActivity(detailIntent);
}
}
【问题讨论】:
-
发布包含主片段的布局。
-
可以查看
onItemSelected传入的id。但是,这取决于您从 onListItemClick 调用 onItemSelected 方法时传入的值。 -
那个 id 指的是细节片段容器。不是吗?
-
@Joseph82 my
onListItemClick自从我创建项目以来就没有被修改过。如下所示,它取决于从虚拟内容项中单击的内容。@Override public void onListItemClick(ListView listView, View view, int position, long id) { super.onListItemClick(listView, view, position, id); mCallbacks.onItemSelected(DummyContent.ITEMS.get(position).id); } -
所以,你可以比较那个id,例如
if("1".equals(id)){ // replace fragment}
标签: java android xml android-intent android-fragments