Alex Cordell Hughes faces two counts of attempted murder, one count of aggravated battery and criminal gang activity.
Hughes is not in custody and police continued to search for him, calling him "armed and dangerous."
RELATED: 2 shot at Walmart in Hobart; person of interest sought
The shooting occurred at about 7:30 p.m. Sunday at the Walmart at 2936 E. 79th Ave. in a busy commercial district along U.S. Route 30.
Police said the shooting was gang related. The man shot in the Walmart parking lot was also shot several times six weeks earlier in Gary.
The man and his 9-year-old son were shot while leaving the store. In response, a man with the victim started shooting at the gunman, police said.
RELATED: Man and 9-year-old son shot at Walmart in Hobart, Indiana
The victim, who was in the Walmart with a group of people, had allegedly encountered the shooter while in the store.
An off-duty Gary police officer was in the store when the shooting occurred, according to court documents.
The boy and his father remained in the hospital on Tuesday.
The Associated Press contributed to this report.