제목 그대로 커스텀 버튼을 만들고싶습니다.

처음엔 초기색상인 초록색이 설정되어있고

버튼을 누를때 마다 빨간색, 파란색 순으로 색상이 바뀌는 커스텀버튼을

만들어 보려고 하는데

#메인

package com.example.reversecard;

import android.os.Bundle;
import android.app.Activity;
import android.graphics.drawable.BitmapDrawable;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;

public class CardGame extends Activity {


 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  this.requestWindowFeature(Window.FEATURE_NO_TITLE);
  getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
  setContentView(R.layout.activity_card_game);

  final BitmapDrawable drawable0 = (BitmapDrawable) getResources().getDrawable(R.drawable.green);
  final BitmapDrawable drawable1 = (BitmapDrawable) getResources().getDrawable(R.drawable.red);
  final BitmapDrawable drawable2 = (BitmapDrawable) getResources().getDrawable(R.drawable.blue);
  
  final Cards card1_1 = new Cards(this);
  card1_1.button = (Button)findViewById(R.id.card1_1);
  card1_1.button.setOnClickListener(card1_1.listener);

 }

 


 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
  getMenuInflater().inflate(R.menu.activity_card_game, menu);
  return true;
 }
}

 

---------------------------------------------------------------------------------

#커스텀버튼

package com.example.reversecard;

import android.content.Context;
import android.graphics.drawable.BitmapDrawable;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

 

public class Cards {
 
 int state = 0;
 final int RED = 1;
 final int BLUE = 2;
 
 Button button;
 Context mContext;
 
 public Cards(Context context)
 {
  mContext = context;
 }

 OnClickListener listener = new OnClickListener()
 {
  BitmapDrawable drawable0 = (BitmapDrawable) mContext.getResources().getDrawable(R.drawable.green); 
  BitmapDrawable drawable1 = (BitmapDrawable) mContext.getResources().getDrawable(R.drawable.red);
  BitmapDrawable drawable2 = (BitmapDrawable) mContext.getResources().getDrawable(R.drawable.blue);
  
  @Override
  public void onClick(View v) {
   if(state==RED){
    button.setBackgroundDrawable(drawable1);
    state = BLUE ;
   }
   else{
    button.setBackgroundDrawable(drawable2);
    state = RED;
   }
  }
 };
 

}

 

이런식으로 커스텀버튼(Cards)을 만들고 커스텀버튼 클래스 안에 클릭리스너를 삽입하여

메인(CardGame)에서 커스텀버튼을 불러와서 리스너를 집어넣어주려고 하는데

계속 에러가 나서 질문 드립니다.

제 생각엔 메인(CardGame)에서 커스텀버튼(Cards)의 클릭리스너를 집어넣어줄때 

 

card1_1.button.setOnClickListener(card1_1.listener);

 

혹은

커스텀버튼을 생성할때

card1_1.button = (Button)findViewById(R.id.card1_1);

 

에러가 발생하는 것 같은데 왜 에러가 나는지 알 수 있을까요?