Buggy code:
for ( final String attrName : attributes ) { TableRow newTableRow = new TableRow ( rootView . getContext ( ) ) ; newTableRow . setGravity ( CENTER_VERTICAL ) ; TextView titleTxtView = new TextView ( rootView . getContext ( ) ) ; Button subButton = new Button ( rootView . getContext ( ) ) ; TextView attrDisplayTxtView = new TextView ( rootView . getContext ( ) ) ; Button addButton = new Button ( rootView . getContext ( ) ) ; TextView extraInfo = new TextView ( rootView . getContext ( ) ) ; int baseStat = ChummerConstants . baseStat ; int maxStat = ChummerConstants . maxStat ; boolean spec = false ; titleTxtView . setText ( attrName ) ; TableRow . LayoutParams lp = new TableRow . LayoutParams ( LayoutParams . WRAP_CONTENT , LayoutParams . WRAP_CONTENT ) ; lp . setMargins ( 0 , 0 , 5 , 0 ) ; titleTxtView . setLayoutParams ( lp ) ; newTableRow . addView ( titleTxtView ) ; subButton . setText ( "-" ) ; TableRow . LayoutParams lp2 = new TableRow . LayoutParams ( LayoutParams . WRAP_CONTENT , LayoutParams . WRAP_CONTENT ) ; subButton . setLayoutParams ( lp2 ) ; newTableRow . addView ( subButton ) ; Resources res = getResources ( ) ; switch ( attrName . toLowerCase ( ) ) { case "body" : baseStat = ShadowrunCharacter . getCharacter ( ) . getAttributes ( ) . getBaseBody ( ) ; maxStat = ShadowrunCharacter . getCharacter ( ) . getAttributes ( ) . getMaxBody ( ) ; attrDisplayTxtView . setText ( res . getString ( attrText , baseStat , maxStat ) ) ; break ; case "agility" : baseStat = ShadowrunCharacter . getCharacter ( ) . getAttributes ( ) . getBaseAgi ( ) ; maxStat = ShadowrunCharacter . getCharacter ( ) . getAttributes ( ) . getMaxAgi ( ) ; attrDisplayTxtView . setText ( res . getString ( attrText , baseStat , maxStat ) ) ; break ; case "reaction" : baseStat = ShadowrunCharacter . getCharacter ( ) . getAttributes ( ) . getBaseRea ( ) ; maxStat = ShadowrunCharacter . getCharacter ( ) . getAttributes ( ) . getMaxRea ( ) ; attrDisplayTxtView . setText ( res . getString ( attrText , baseStat , maxStat ) ) ; break ; case "strength" : baseStat = ShadowrunCharacter . getCharacter ( ) . getAttributes ( ) . getBaseStr ( ) ; maxStat = ShadowrunCharacter . getCharacter ( ) . getAttributes ( ) . getMaxStr ( ) ; attrDisplayTxtView . setText ( res . getString ( attrText , baseStat , maxStat ) ) ; break ; case "will" : baseStat = ShadowrunCharacter . getCharacter ( ) . getAttributes ( ) . getBaseWil ( ) ; maxStat = ShadowrunCharacter . getCharacter ( ) . getAttributes ( ) . getMaxWil ( ) ; attrDisplayTxtView . setText ( res . getString ( attrText , baseStat , maxStat ) ) ; break ; case "logic" : baseStat = ShadowrunCharacter . getCharacter ( ) . getAttributes ( ) . getBaseLog ( ) ; maxStat = ShadowrunCharacter . getCharacter ( ) . getAttributes ( ) . getMaxLog ( ) ; attrDisplayTxtView . setText ( res . getString ( attrText , baseStat , maxStat ) ) ; break ; case "intuition" : baseStat = ShadowrunCharacter . getCharacter ( ) . getAttributes ( ) . getBaseInt ( ) ; maxStat = ShadowrunCharacter . getCharacter ( ) . getAttributes ( ) . getMaxInt ( ) ; attrDisplayTxtView . setText ( res . getString ( attrText , baseStat , maxStat ) ) ; break ; case "charisma" : baseStat = ShadowrunCharacter . getCharacter ( ) . getAttributes ( ) . getBaseCha ( ) ; maxStat = ShadowrunCharacter . getCharacter ( ) . getAttributes ( ) . getMaxCha ( ) ; attrDisplayTxtView . setText ( res . getString ( attrText , baseStat , maxStat ) ) ; break ; case "edge" : baseStat = ShadowrunCharacter . getCharacter ( ) . getAttributes ( ) . getBaseEdge ( ) ; maxStat = ShadowrunCharacter . getCharacter ( ) . getAttributes ( ) . getMaxEdge ( ) ; attrDisplayTxtView . setText ( res . getString ( attrText , baseStat , maxStat ) ) ; spec = true ; break ; case "magic" : <START_BUG> if ( ( ShadowrunCharacter . getCharacter ( ) . getUserType ( ) ) < ( magician . ordinal ( ) ) ) { <END_BUG> baseStat = ShadowrunCharacter . getCharacter ( ) . getAttributes ( ) . getBaseMagic ( ) ; maxStat = ShadowrunCharacter . getCharacter ( ) . getAttributes ( ) . getMaxMagic ( ) ; attrDisplayTxtView . setText ( res . getString ( attrText , baseStat , maxStat ) ) ; } else { continue ; } spec = true ; break ; case "technomancer" : if ( ( ShadowrunCharacter . getCharacter ( ) . getUserType ( ) ) == ( technomancer . ordinal ( ) ) ) { baseStat = ShadowrunCharacter . getCharacter ( ) . getAttributes ( ) . getBaseRes ( ) ; maxStat = ShadowrunCharacter . getCharacter ( ) . getAttributes ( ) . getMaxRes ( ) ; attrDisplayTxtView . setText ( res . getString ( attrText , baseStat , maxStat ) ) ; } else { continue ; } spec = true ; break ; } TableRow . LayoutParams lp3 = new TableRow . LayoutParams ( LayoutParams . WRAP_CONTENT , LayoutParams . WRAP_CONTENT ) ; lp3 . setMargins ( 20 , 20 , 20 , 20 ) ; attrDisplayTxtView . setLayoutParams ( lp3 ) ; attrDisplayTxtView . setGravity ( 1 ) ; attrDisplayTxtView . setMinWidth ( 50 ) ; newTableRow . addView ( attrDisplayTxtView ) ; addButton . setText ( "+" ) ; TableRow . LayoutParams lp4 = new TableRow . LayoutParams ( LayoutParams . WRAP_CONTENT , LayoutParams . WRAP_CONTENT ) ; addButton . setLayoutParams ( lp4 ) ; newTableRow . addView ( addButton ) ; extraInfo . setText ( "" ) ; newTableRow . addView ( extraInfo ) ;

Fix:
if ( ( ShadowrunCharacter . getCharacter ( ) . getUserType ( ) ) >= ( magician . ordinal ( ) ) ) {