public class FragmentOne extends Fragment implements View.OnClickListener{
public FragmentOne() {}
TextView matchStatus;
@Override
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); }
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_one, container, false);
Button matchButton = (Button)view.findViewById(R.id.button_match);
matchButton.setOnClickListener(this);
return view;
}
@Override
public void onClick(View view){
switch(view.getId()){
case R.id.button_match:
matchStatus = (TextView)view.findViewById(R.id.textView_matchStatus);
matchStatus.setText("sup");
break;
}
}
我意识到当我在 onClick() 方法中实例化matchStatus时,我得到一个 NullPointerException 但是当我在 onCreateView() 方法中执行它时它工作得很好。有人可以解释我为什么吗?
我的猜测是它在 onClick() 方法中不起作用,因为它连接到保存 Fragment 的 Activity 并且它在 Activity 中查找 matchStatus 而这不会发生在 onCreateView() 方法中,因为我正在膨胀 fragment_one。 xml,但我不确定。
相关分类