Adding SwitchCompat Software Error

I try to add android.support.v7.widget.SwitchCompatprogrammatically and I get this error:

java.lang.NullPointerException: Attempt to invoke interface method 'int java.lang.CharSequence.length()' on a null object reference
                                                                           at android.text.StaticLayout.<init>(StaticLayout.java:422)
                                                                           at android.support.v7.widget.SwitchCompat.makeLayout(SwitchCompat.java:602)
                                                                           at android.support.v7.widget.SwitchCompat.onMeasure(SwitchCompat.java:526)
                                                                           at android.view.View.measure(View.java:18799)
                                                                           at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
                                                                           at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1458)
                                                                           at android.widget.LinearLayout.measureVertical(LinearLayout.java:746)
                                                                           at android.widget.LinearLayout.onMeasure(LinearLayout.java:629)
                                                                           at android.view.View.measure(View.java:18799)
                                                                           at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
                                                                           at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1458)
                                                                           at android.widget.LinearLayout.measureVertical(LinearLayout.java:746)
                                                                           at android.widget.LinearLayout.onMeasure(LinearLayout.java:629)
                                                                           at android.view.View.measure(View.java:18799)
                                                                           at android.support.v7.widget.Toolbar.measureChildCollapseMargins(Toolbar.java:1218)
                                                                           at android.support.v7.widget.Toolbar.onMeasure(Toolbar.java:1326)
                                                                           at android.view.View.measure(View.java:18799)
                                                                           at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
                                                                           at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1458)
                                                                           at android.widget.LinearLayout.measureVertical(LinearLayout.java:746)
                                                                           at android.widget.LinearLayout.onMeasure(LinearLayout.java:629)
                                                                           at android.support.design.widget.AppBarLayout.onMeasure(AppBarLayout.java:199)
                                                                           at android.view.View.measure(View.java:18799)
                                                                           at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
                                                                           at android.support.design.widget.CoordinatorLayout.onMeasureChild(CoordinatorLayout.java:668)
                                                                           at android.support.design.widget.AppBarLayout$Behavior.onMeasureChild(AppBarLayout.java:888)
                                                                           at android.support.design.widget.AppBarLayout$Behavior.onMeasureChild(AppBarLayout.java:652)
                                                                           at android.support.design.widget.CoordinatorLayout.onMeasure(CoordinatorLayout.java:733)
                                                                           at android.view.View.measure(View.java:18799)
                                                                           at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
                                                                           at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
                                                                           at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:135)
                                                                           at android.view.View.measure(View.java:18799)
                                                                           at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
                                                                           at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1458)
                                                                           at android.widget.LinearLayout.measureVertical(LinearLayout.java:746)
                                                                           at android.widget.LinearLayout.onMeasure(LinearLayout.java:629)
                                                                           at android.view.View.measure(View.java:18799)
                                                                           at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
                                                                           at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
                                                                           at android.view.View.measure(View.java:18799)
                                                                           at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
                                                                           at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1458)
                                                                           at android.widget.LinearLayout.measureVertical(LinearLayout.java:746)
                                                                           at android.widget.LinearLayout.onMeasure(LinearLayout.java:629)
                                                                           at android.view.View.measure(View.java:18799)
                                                                           at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
                                                                           at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
                                                                           at com.android.internal.policy.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2899)
                                                                           at android.view.View.measure(View.java:18799)
                                                                           at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2108)
                                                                           at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1224)
                                                                           at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1460)
                                                                           at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1115)
                                                                           at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6023)
                                                                        at android.view.Choreographer$CallbackRecord.run(Chore

but when i use Switch, everything is fine. Why is this happening? this is my code:

SwitchCompat switchBox = (SwitchCompat) LayoutInflater.from(getApplicationContext()).inflate(R.layout.checkbox, null);
switchBox.setId(i);
Typeface typeface = Typeface.createFromAsset(getAssets(), "iransansfont.ttf");
switchBox.setText(convert_num((nodesModelArrayList.get(i).type ? "بیمارستان " : "مطب ") + nodesModelArrayList.get(i).node_name + ": " + nodesModelArrayList.get(i).stat));
switchBox.setTypeface(typeface);
switchBox.setOnCheckedChangeListener(onCheckedChangeListener);
linearLayout.addView(switchBox);
switchBox.setChecked(true);
+2
source share
1 answer

Use an action context rather than an application context to inflate views so that, for example, themes work.

Failure is due to the fact that the labels textOnand textOffare zeros, which are usually obtained from the default theme.

+7
source

Source: https://habr.com/ru/post/1606598/


All Articles