从细节片段中获取意图数据

时间:2014-02-24 10:29:18

标签: android android-intent android-fragments

我遇到的问题对我来说非常有趣。我使用主详细信息模板开发应用程序。在平板电脑上一切正常,但在这里切换到手机时,我得到一些我不知道如何接近的东西。选择项目后,我使用以下代码启动了一个意图:

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而不是实际值。有人可以帮我解决这个问题吗?

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}}传递任何数据。