目前我正在尝试使用加载对话框的按钮。当对话框打开时,它允许您选择一种颜色,然后选择的颜色用于定义您最初单击的按钮。但是我真的被卡住了。
主要课程
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 :(得分:0)
看看android binding库,它允许您构建更灵活的MVVM导向解决方案,解决您的问题,您只需要设置绑定和命令一次,这样的同步/更新将自动工作。
答案 1 :(得分:0)
如果choiceOne按钮位于newgame布局上 你不能在colorpicker布局中使用
尝试将对话框类的颜色发送到主类 然后在主类中更改按钮的颜色
和
我认为R.id.btnBlack
不是颜色
尝试Color.parseColor("color code")
例如。 #ffffff