Animations Only Playing First Frame on Key Press

I've got a series of animations that I want played, one's an idle animation, and the other are activity based on a variable. But the activity animations only play the first frame, then snap back to the beginning of the idle animation. I tried using a for loop to lock in the animation, but that didn't work. I read through this for help, but none of the solutions are working. I'm not generating any errors in my script, and only one script is controlling these animations, but they still only play the first frame.

void Update () {
    if(Input.GetButtonDown("robotarm")) {
        if(holding == false) {
            animation.wrapMode = WrapMode.Once;
            for (int i = 0; i <= 240; i++) {
            animation.CrossFade("Pickup");
            }
            holding = true;
        }
        if(holding == true) {
            animation.wrapMode = WrapMode.Once;
            for (int i = 0; i <= 120; i++) {
            animation.CrossFade("Drop");
            }
            holding = false;
        }
    animation.wrapMode = WrapMode.Once;
    animation.CrossFade("Inactive");
    }
}

What am I doing wrong!?

Crossfade with one param will crossfade to the named animation (Inactive) in .3 seconds. If that's your idle, then that will happen on any robot-button-down event.

To get the Inactive to play after the 'activity' ones, you can either have it wait some seconds and then play that, or include an Animation Event in those animations that trigger the Inactive one.