baron dune
baron dune

Reputation: 367

android Array by drawable resources with onClick event

ok so I have my array, im calling my array, but it doesn't update the background of the canvas? what am I doing wrong? perhaps some tutorial links would be helpful here. Thanks.

             int[] myImageList = {
            R.drawable.lettersa, R.drawable.lettersb,
            R.drawable.lettersc, R.drawable.lettersd,
            R.drawable.letterse, R.drawable.lettersf, R.drawable.lettersg,
            R.drawable.lettersh, R.drawable.lettersi, R.drawable.lettersj,
            R.drawable.lettersk, R.drawable.lettersl, R.drawable.lettersm,
            R.drawable.lettersn, R.drawable.letterso, R.drawable.lettersp,
            R.drawable.lettersq, R.drawable.letterss, R.drawable.letterst,
            R.drawable.lettersu, R.drawable.lettersv, R.drawable.lettersw,
            R.drawable.lettersx, R.drawable.lettersy, R.drawable.lettersz};


                 mNextBtn.setOnClickListener(new OnClickListener() {
                    public void onClick(View v) {
                        // TODO Auto-generated method stub
                        int i;
                        if (mNextBtn.equals(mNextBtn)) {

                            for   (i=0;i<myImageList.length;i++)
                            {
                                         mSCanvas.setBackgroundResource(i);
                            }

                            return;
                        }   

                        mNextBtn.setEnabled(mSCanvas.isUndoable());
                        }

                });

Upvotes: 0

Views: 345

Answers (1)

Sam
Sam

Reputation: 86948

Basically I want the canvas background to change to the next letter to trace upon click of the button

I recommend a different approach:

mNextBtn.setOnClickListener(new OnClickListener() {
    int i = 0;
    public void onClick(View v) {
        mSCanvas.setBackgroundResource(myImageList[i]);
        i++;
        if(i >= myImageList.length)
             i = 0;

        // I'm not sure what you want to do here, so I left it:
        mNextBtn.setEnabled(mSCanvas.isUndoable());
        return;
    }
});

I changed three main points:

  1. Only set one background resource at a time, the loop sets every background resource in a few milliseconds and always leaves you with the last value.
  2. The drawable resource is myImageList[i] not i in mSCanvas.setBackgroundResource()
  3. I don't know of any situation when this mNextBtn.equals(mNextBtn) is false...

Upvotes: 1

Related Questions