首先让我说,我希望东海岸的每个人在飓风桑迪之后都没事.我很幸运,虽然我住在纽约市,但我从未失去权力.我的想法告诉那些不那么幸运的人.
现在我三天后回来工作了,我需要一些片段的帮助.我正在尝试将Bundle传递给Fragment并且它无法正常工作.我知道我的通用片段设置正确,因为如果我不尝试通过Bundle,它可以正常工作.所以这是我的活动,我通过Bundle:
现在我三天后回来工作了,我需要一些片段的帮助.我正在尝试将Bundle传递给Fragment并且它无法正常工作.我知道我的通用片段设置正确,因为如果我不尝试通过Bundle,它可以正常工作.所以这是我的活动,我通过Bundle:
public void onItemClick(AdapterView<?> parent,View view,int position,long id) { Intent choice = new Intent(getApplicationContext(),com.MyProject.project.MyList.class); Bundle dataBundle = new Bundle(); String chosenValue = values[position]; dataBundle.putString("Level",chosenValue); choice.putExtras(dataBundle); startActivity(choice); }
现在这是我没有Bundle的活动.这很好用:
public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); String[] values = new String[] { "Enterprise","Star Trek","Next Generation","Deep Space 9","Voyager"}; ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1,values); setlistadapter(adapter); }
但是,当我尝试从Bundle获取信息时,它不起作用.这是我的代码:
public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); Bundle info = getArguments(); String level = info.getString("level"); String[] values = new String[] {level,level}; ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),values); setlistadapter(adapter); }
当我运行它并在我的Activity中单击我的选择时,应用程序就会挂起. LogCat似乎没有给我很多关于此的信息.有没有人在这看到任何问题?
谢谢!
解决方法
您需要在Fragment上设置参数.
在Activity的onCreate中:
Fragmet myFragment = new MyFragment(); myFragment.setArguments( getIntent().getExtras() );