如何从intent更新活动属性?

时间:2011-12-28 17:18:31

标签: android android-layout

目前我正在尝试使用加载对话框的按钮。当对话框打开时,它允许您选择一种颜色,然后选择的颜色用于定义您最初单击的按钮。但是我真的被卡住了。

主要课程

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);

        }
    });
}
}

2 个答案:

答案 0 :(得分:0)

看看android binding库,它允许您构建更灵活的MVVM导向解决方案,解决您的问题,您只需要设置绑定和命令一次,这样的同步/更新将自动工作。

答案 1 :(得分:0)

如果choiceOne按钮位于newgame布局上 你不能在colorpicker布局中使用

尝试将对话框类的颜色发送到主类 然后在主类中更改按钮的颜色

我认为R.id.btnBlack不是颜色 尝试Color.parseColor("color code")例如。 #ffffff