我遇到的问题对我来说非常有趣。我使用主详细信息模板开发应用程序。在平板电脑上一切正常,但在这里切换到手机时,我得到一些我不知道如何接近的东西。选择项目后,我使用以下代码启动了一个意图:
Intent detailIntent = new Intent(this, CategoryDetailActivity.class);
detailIntent.putExtra(CategoryDetailFragment.ARG_ITEM_ID, id);
startActivity(detailIntent);
问题是我无法从目标片段中获取该id的值:
if (getArguments().containsKey(ARG_ITEM_ID)) {
_locations = _sqlLoc.getAllLocationsByCategory(getArguments().getInt(ARG_ITEM_ID, -1));
}
else{
_locations = _sqlLoc.getAllLocationsByCategory(-1);
}
使用此代码,我总是得到-1而不是实际值。有人可以帮我解决这个问题吗?
答案 0 :(得分:0)
为什么要开始新的Activity
?如果要正确实现Master-Details模式的电话版本,则应该用新的Fragment
替换当前的getFragmentManager().beginTransaction().replace(R.id.main_layout, new DetailsFragment()).addToBackStack(null).commit();
。这样的事情:Activity
您可以在(MyActivity)getActivity().getData()
中存储所需的所有数据,并通过Bundle
从您的片段中获取。这样,您根本不需要通过{{1}}传递任何数据。