I want to make buttons to adjust my text. There are buttons for making the TextView bigger, smaller, back and forth between italic and bold.
I want to edit the TextView called "text"
In the code below, when I clicked the "butBig" or "butSmall" button, both button does the same thing it makes my text size increase but not by 5, it became really big. When I clicked on either button again, the TextView disappear like it is too big for the frame.
butBig.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
float size = text.getTextSize();
text.setTextSize(size + 5.0F);
}
});
butSmall.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
float size = text.getTextSize();
text.setTextSize(size - 5.0F);
}
});
For Italic and Bold, my code here does work but sometimes when I clicked either of these buttons, the app crashed for no reason..
butItalic.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (text.getTypeface().getStyle() == Typeface.BOLD) {
text.setTypeface(null, Typeface.BOLD_ITALIC);
} else if (text.getTypeface().getStyle() == Typeface.ITALIC) {
text.setTypeface(null, Typeface.NORMAL);
} else if (text.getTypeface().getStyle() == Typeface.NORMAL) {
text.setTypeface(null, Typeface.ITALIC);
} else if (text.getTypeface().getStyle() == Typeface.BOLD_ITALIC) {
text.setTypeface(null, Typeface.BOLD);
}
}
});
butBold.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (text.getTypeface().getStyle() == Typeface.ITALIC) {
text.setTypeface(null, Typeface.BOLD_ITALIC);
} else if (text.getTypeface().getStyle() == Typeface.BOLD) {
text.setTypeface(null, Typeface.NORMAL);
} else if (text.getTypeface().getStyle() == Typeface.NORMAL) {
text.setTypeface(null, Typeface.BOLD);
} else if (text.getTypeface().getStyle() == Typeface.BOLD_ITALIC) {
text.setTypeface(null, Typeface.ITALIC);
}
}
});
Please help me with this
Thank you
Edit: Here's my logcat :)
--------- beginning of crash 11-05 05:34:17.581 2416-2416/com.example.textadjust E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.textadjust, PID: 2416 java.lang.NullPointerException: Attempt to invoke virtual method 'int android.graphics.Typeface.getStyle()' on a null object reference at com.example.textadjust.MainActivity$3.onClick(MainActivity.java:57) at android.view.View.performClick(View.java:5198) at android.view.View$PerformClick.run(View.java:21147) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 11-05 05:34:19.734 2416-2416/? I/Process: Sending signal. PID: 2416 SIG: 9