Home > Mobile >  How to change TextView fontSize of one activity through another activity?
How to change TextView fontSize of one activity through another activity?

Time:07-16

So I have two activities and in the second one there is a edittext and a button. When you type in some number/s in the edittext and when you press the button it should change the fontsize of all the textviews in the first activity corresponding to the number/s you type in. I did in a certain way but my mentor said it shouldnt be like I did it. Can you please help me with another way of doing this ? Probably more simpler than this. I will post the code.

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);

        Switch buttonChangeColors = findViewById(R.id.buttonChangeColors);
        Button buttonToGoBackToMainActivity = findViewById(R.id.buttonToGoBackToMainActivity);
        Button buttonChangeFontSizeOfCalculator = findViewById(R.id.buttonChangeFontSizeOfCalculator);
        editTextInsertSize = findViewById(R.id.editTextInsertSize);
buttonChangeFontSizeOfCalculator.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                float fontSize = Float.parseFloat(editTextInsertSize.getText().toString());

                textViewNumberZero = MainActivity.mainActivity.findViewById(R.id.textViewNumberZero);
                textViewNumberOne = MainActivity.mainActivity.findViewById(R.id.textViewNumberOne);
                textViewNumberTwo = MainActivity.mainActivity.findViewById(R.id.textViewNumberTwo);
                textViewNumberThree = MainActivity.mainActivity.findViewById(R.id.textViewNumberThree);
                textViewNumberFour = MainActivity.mainActivity.findViewById(R.id.textViewNumberFour);
                textViewNumberFive = MainActivity.mainActivity.findViewById(R.id.textViewNumberFive);
                textViewNumberSix = MainActivity.mainActivity.findViewById(R.id.textViewNumberSix);
                textViewNumberSeven = MainActivity.mainActivity.findViewById(R.id.textViewNumberSeven);
                textViewNumberEight = MainActivity.mainActivity.findViewById(R.id.textViewNumberEight);
                textViewNumberNine = MainActivity.mainActivity.findViewById(R.id.textViewNumberNine);

                textViewOperationEquals = MainActivity.mainActivity.findViewById(R.id.textViewOperationEquals);
                textViewOperationAdd = MainActivity.mainActivity.findViewById(R.id.textViewOperationAdd);
                textViewOperationSubtract = MainActivity.mainActivity.findViewById(R.id.textViewOperationSubtract);
                textViewOperationMultiply = MainActivity.mainActivity.findViewById(R.id.textViewOperationMultiply);
                textViewOperationDivide = MainActivity.mainActivity.findViewById(R.id.textViewOperationDivide);
                textViewOperationClear = MainActivity.mainActivity.findViewById(R.id.textViewOperationClear);
                textViewOperationClearAll = MainActivity.mainActivity.findViewById(R.id.textViewOperationClearAll);

                textViewNumberZero.setTextSize(fontSize);
                textViewNumberOne.setTextSize(fontSize);
                textViewNumberTwo.setTextSize(fontSize);
                textViewNumberThree.setTextSize(fontSize);
                textViewNumberFour.setTextSize(fontSize);
                textViewNumberFive.setTextSize(fontSize);
                textViewNumberSix.setTextSize(fontSize);
                textViewNumberSeven.setTextSize(fontSize);
                textViewNumberEight.setTextSize(fontSize);
                textViewNumberNine.setTextSize(fontSize);

                textViewOperationAdd.setTextSize(fontSize);
                textViewOperationSubtract.setTextSize(fontSize);
                textViewOperationMultiply.setTextSize(fontSize);
                textViewOperationDivide.setTextSize(fontSize);
                textViewOperationEquals.setTextSize(fontSize);

                textViewOperationClear.setTextSize(fontSize);
                textViewOperationClearAll.setTextSize(fontSize);
            }
        });
    }

CodePudding user response:

A simple idea you can consider:

  • Create a middleware to listen event from activity2 and notify to activity1.
  • Activity1 will observe to Middleware.

You can also read Guide to app architecture to clarify how to do it.

CodePudding user response:

To solve this problem, you'd better review data transfer with intent.And using that many findViewById may cause the application to run slower. You should use ViewBinding instead of findViewById.

  • Related