Alex
Alex

Reputation: 325

Want to perform an action on a button press rather than a button click

I need to execute some code upon the press of a button, but right now I have and can only find information on executing code upon the click of a button (press and let go).

How can I set a press listener or something like this?

This is what I have so far for each button:

greenBut.setOnClickListener(new Button.OnClickListener(){

        @Override
        public void onClick(View arg0) {
            arg0.startAnimation(animAlpha);
            fluteB5.start();

            if (myList[levelIter] != 2) {
                redLight();
            } else if (myList[levelIter] == 2 && levelIter == lvlIndep) {
                levelIter = 0;
                numMistakes=0;
                Log.v("CAUTION", Integer.toString(lvlIndep) + " " + Integer.toString(levelIter));
                lvlIndep++;
                exStak(findViewById(android.R.id.content));
            }
            else if (myList[levelIter] == 2 && levelIter != lvlIndep) {
                levelIter++;
                Log.v("CAUTION", Integer.toString(lvlIndep) + " " + Integer.toString(levelIter));
            }
        }});

Upvotes: 0

Views: 49

Answers (1)

MarsAtomic
MarsAtomic

Reputation: 10673

You're looking for an onTouch event, available with the OnTouchListener.

final Button button = (Button) findViewById(R.id.button_id);
button.setOnTouchListener(new View.OnTouchListener()
{
    @Override
    public boolean onTouch(View view, MotionEvent event)
    {
        if(event.getAction() == MotionEvent.ACTION_DOWN)
        {
            // Do something
        }
    }
});

Upvotes: 2

Related Questions