Could be a crap battery or more likely cable to the starter. I replaced a starter once and the problem stayed. Turned out it was the positive cable internally corroded, reduced current making it to the starter.
That's where I was gonna go. Not enough juice for the solenoid to throw out the gear far enough. or to make good contact with the built-in starter switch. I also found once that giving the starter a couple of good sharp bangs with a big wrench around where you can get to it cured a sticky starter.
Regarding battery posts in reference to the above quote, several times just putting a screwdriver, preferably Phillips, in the joint between the post and the clamp and giving it a smack with a hammer has cured dirty cruddy battery connections. The metal deformation tends to re-establish a good connection. Repeat 3-4 times around the circumference of the joint.
Temporary fix, but one stranded lady I did that for thought I worked at Auto Zone because I was wearing an Auto Zone hat they'd given me for being such a good customer. And I had the tools in my car.
She offered to pay me $20, but I figured I'd rather store up my treasures in heaven since that heavenly bank's balance had been getting pretty low at the time.
Terry