猿问

实例化 onClick() 中的 ui 元素与 Fragment 中的 onCreateView

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,但我不确定。


弑天下
浏览 108回答 1
1回答
随时随地看视频慕课网APP

相关分类

Java
我要回答