[英]How to get the onClick function?
我正在尝试在片段内制作科学计算器。 实际上跟随一个 YT 视频,那个人在他的主要活动中做所有这些,而不是片段。 我在我的片段的 xml 中使用了这段代码:
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_scientific_calculator, container, false);
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
previousCalculation = view.findViewById(R.id.previousCalculationView);
display = view.findViewById(R.id.displayEditText);
}
private void updateText(String strTOAdd) {
display.setText(strTOAdd);
}
public void zeroBTNPush(View view) {
updateText("0");
}
我所知道的是,要在片段中使用 findViewById,我必须创建一个 onViewCreated void。 因此,在完成所有这些之后,我应该在 fragment.java>design>attributes>onClick 中获得 updateText function 但我什么也没有在此处输入图像描述我是新手。 请帮忙
您可以像这样在片段代码中设置 OnClickListener
someBtn.setOnClickListener(new OnClickListener(){
// call the method you want to be excecuted when the buttun is being pressed
})
您也可以在设计中指定它,但例如我更愿意直接使用 XML 代码 - 这对我来说更容易理解
要使用findViewById
,我认为您只需要一个View
object,它由onCreateView
返回,因此您可以这样做:
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_scientific_calculator, container, false);
Button btn = view.findViewById(R.id.yourButtonId);
btn.setOnClickListener((View v) -> {
// do something here
});
}
您可以在onViewCreated
中使用传入的视图执行此操作,方法是获取按钮并在其上设置点击侦听器,如下所示:
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
//...
Button myButton = view.findViewById(R.id.myButton);
myButton.setOnClickListener((View v) -> {
// do button stuff
});
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.