Home > front end >  How to get the onClick function?
How to get the onClick function?

Time:01-22

I am trying to make a scientific calculator inside a fragment. Actually following a YT video and that guy is doing all that in his mainactivity not the fragment. I used this code in xml of my fragment:

@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");
}

All I know is that to use findViewById in a fragment, I have to create a onViewCreated void. So after doing all this I should get the updateText function in fragment.java>design>attributes>onClick but I get nothing there enter image description here I'm new to this. Please help

CodePudding user response:

You can just set OnClickListener in your fragment code like this

someBtn.setOnClickListener(new OnClickListener(){
    // call the method you want to be excecuted when the buttun is being pressed
})

also you can specify it in the design, but for example I would prefer to work with the XML code directly - it's much more understantable for me

CodePudding user response:

To use findViewById I think all you need is a View object, which is returned by onCreateView, so you could just do:

@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
    });
}
  •  Tags:  
  • Related