Richard Thomas was charged with aggravated mayhem, felony assault and a hate-crime "enhancement" after telling a police officer he committed Monday's attack "because he was homophobic," according to the criminal complaint.
The 18-year-old victim, Luke Fleischman, who was born male but identifies himself as gender neutral and goes by the name of Sasha, remained hospitalized in San Francisco with severe burns on Thursday and was listed in stable condition, a hospital spokeswoman said.
The teen will require several surgeries to recover, according to a website posted by family members to raise money for the victim's medical treatment.
"The intentional and callous nature of the crime is shocking and will not be tolerated in our community," Alameda County District Attorney Nancy O'Malley said in a statement.
Relatives defended Thomas saying he was just joking and not a hateful person.
Meanwhile, police would like to interview passengers on the bus who left before police arrived, particularly two men who helped extinguish the burning clothing. Lead investigator Anwawn Jones can be contacted at 510-238-3326.
"We are asking the good Samaritans to contact the Oakland Police Department, and we also want to recognize their heroic efforts," said Oakland Police spokeswoman Officer Johnna Watson.