2011-12-28 9 views
0

現在、ダイアログをロードするボタンを使用しようとしている状況があります。ダイアログが開いたら、色を選択し、選択した色を使用して最初にクリックしたボタンを定義します。しかし、本当に立ち往生しています。アクティビティのプロパティをインテントから更新するにはどうすればよいですか?

メインクラス

package dom.MasterMind.Com; 


public class NewGameActivity extends Activity { 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.newgame); 

    Button choiceOne = (Button) findViewById(R.id.choiceOne); 
    Button choiceTwo = (Button) findViewById(R.id.choiceTwo); 
    Button choiceThree = (Button) findViewById(R.id.choiceThree); 
    Button choiceFour = (Button) findViewById(R.id.choiceFour); 



    final ColorPicker dialog = new ColorPicker(this); 

    choiceOne.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      dialog.show(); 

     } 
    }); 

    choiceTwo.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      dialog.show(); 

     } 
    }); 

    choiceThree.setOnClickListener(new OnClickListener() { 


     @Override 
     public void onClick(View v) { 

      dialog.show(); 
     } 
    }); 

    choiceFour.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      dialog.show(); 

     } 
    }); 
} 
} 

ダイアログクラス

package dom.MasterMind.Com; 

public class ColorPicker extends Dialog{ 
public ColorPicker(Context context) { 
    super(context); 

    setContentView(R.layout.colorpicker); 

    Button btnBlack = (Button)findViewById(R.id.btnBlack); 
    Button btnBlue = (Button)findViewById(R.id.btnBlue); 
    Button btnGreen = (Button)findViewById(R.id.btnGreen); 
    Button btnPurple = (Button)findViewById(R.id.btnPurple); 
    Button btnRed = (Button)findViewById(R.id.btnRed); 
    Button btnYellow = (Button)findViewById(R.id.btnYellow); 

    final Button test = (Button)findViewById(R.id.choiceOne); 

    btnBlack.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      dismiss(); 
      test.setBackgroundColor(R.id.btnBlack); 

     } 
    }); 
} 
} 

答えて

0

android bindingライブラリを見てください、それはあなただけで必要な、あなたにもあなたの問題を解決し、より柔軟なMVVM配向ソリューションを構築することができますバインディングとコマンドを一度セットアップすると、そのような同期/更新は自動的に機能します。

0

choiceOneボタンを newgameレイアウト上にある場合は、私が思うに、メインクラスに

を、ボタンの色を変更 メインクラスにダイアログクラスから色を送信しようとするColorPickerレイアウトに

を使用することはできませんR.id.btnBlackは色ではありません try Color.parseColor("color code")例: #ffffff

関連する問題