The suspect, identified as Michael Zachary Howard-Dale, is charged with aggravated assault against a public servant.
The wounded officer has been identified only as S. Cleveland, an 11-year veteran of the force.
The shooting happened Monday at about 11:25 a.m. at an apartment complex at 200 Northpines Dr. at Loop 494.
During a police update, Houston Police Chief Troy Finner said officers were responding to a disturbance call at the complex.
When officers arrived, they were met by a woman who told them that a male there had a disturbance over the parking space. The woman alleged that the man, Howard-Dale, spat in her face, according to Finner.
The officers went over to his apartment in order to get a statement.
Police say that they asked Howard-Dale for identification, and after he refused to comply twice, they tried to detain him.
That led to a fight inside the apartment, where Howard-Dale pulled out a pistol and fired several times.
Cleveland was hit in the arm and the abdomen.
His ballistic vest stopped the round in his abdomen, but he was transported to HCA Houston Healthcare Kingwood, where he's expected to undergo surgery.
Howard-Dale was detained at the scene.
Officers did not fire their weapons, police said.
At last check, Cleveland, a father and husband, was in critical condition, but was stable.
During Monday's briefing, Finner and Houston Mayor Sylvester Turner asked for prayers for a fast recovery.
"Everyone, prayers for him for a speedy recovery and prayers for his family," Finner said.
The Assist the Officer Foundation is accepting donations to help Cleveland and his family with expenses. You can donate by going to this link.
For updates, follow Tom Abrahams on Facebook, Twitter and Instagram.