Android 将数据从活动传递到片段空指针异常
我正在编写这个应用程序,其中一个字符串必须从活动传递到片段,但我得到一个nullpointerexception,下面是我的代码: 接口:Android 将数据从活动传递到片段空指针异常,android,eclipse,nullpointerexception,fragment,Android,Eclipse,Nullpointerexception,Fragment,我正在编写这个应用程序,其中一个字符串必须从活动传递到片段,但我得到一个nullpointerexception,下面是我的代码: 接口: public interface FragmentCommunicator { public void passDataToFragment(String value); } 片段代码: public class YouWinFragment extends Fragment implements FragmentCommunicato
public interface FragmentCommunicator {
public void passDataToFragment(String value);
}
片段代码:
public class YouWinFragment extends Fragment implements FragmentCommunicator {
TextView score;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_youwin, container,false);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
score = (TextView) getActivity().findViewById(R.id.score_win);
}
@Override
public void passDataToFragment(String value) {
// TODO Auto-generated method stub
score.setText(value);
}
}
主要活动:
public class MainActivity extends ActionBarActivity{
Button youWin;
String theCounter;
YouWinFragment youWinFrag;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
youWinFrag=new YouWinFragment();
setContentView(R.layout.activity_main);
youWin = (Button) findViewById(R.id.button_youwin);
youWin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
FragmentManager fm=getFragmentManager();
FragmentTransaction ft=fm.beginTransaction();
ft.add(R.id.fragment_endgame,youWinFrag );
ft.commit();
}
});
youWinFrag.passDataToFragment("your score is 20");
}
}
Bundle bundle = new Bundle();
bundle.putString("STRING_KEY", "your score is 20");
mYouWinFrag = new YouWinFragment();
mYouWinFrag.setArguments(bundle);
现在,在YouWinFragment中,您将拥有:
String score = getArguments().getString("STRING_KEY");
// Optionally, you can have a default value by using getArguments().getString("STRING_KEY", "A default value if the key isn't set");
请查看developer.android.com上培训部分的文章。有一篇文章讨论了您正在尝试做的事情: 在本文中,有一节称为: 向片段传递消息 这篇文章应该提供你所需要的 另外,您实现的接口是android API的一部分吗?因为我看不到。所以,我假设这是您创建的一个接口。如果是这种情况,您应该阅读上面的整篇文章,以了解片段如何相互通信、活动以及活动如何与片段通信 我也没有在片段或活动API中看到方法passDataToFragment。所以,我假设这是您添加的一种方法。如果是这种情况,则不需要@Override注释,因为类(活动或片段)中没有要重写的方法 我希望这有帮助
道格你能把堆栈跟踪添加到你的问题中吗?