我想在我的代码中全局更改一些按钮颜色.我似乎不能很好地定义颜色变量,然后为该变量分配颜色值.
我试过这个Color SelectedColor = new Color();
f1.setBackgroundColor(Color.rgb(0, 0, 100));
Run Code Online (Sandbox Code Playgroud)
我想使用ColorSelected代替RGB值,这样我就可以在启动时编辑该值.
f1.setBackgroundColor(Color.ColorSelected);
Run Code Online (Sandbox Code Playgroud) 我在xml中设置了10个按钮并添加到主要活动中.我只显示2.所有按钮只更改变量和按钮颜色.是否有方法将所有按钮分组到单个onclicklistener并使用开关检查按下了哪个按钮.使用单独的onclicklistener似乎分配腰部空间.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
f1 =(Button) findViewById(R.id.f1);
f2 =(Button) findViewById(R.id.f2);
f1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
clearbutton();
f1.setBackgroundColor(Color.RED);
intbtnSelect=0;
}
});
f2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
clearbutton();
f2.setBackgroundColor(Color.RED);
intbtnSelect=1;
}
});
Run Code Online (Sandbox Code Playgroud) 我试图使用整数数组将整数转换为二进制数.第一次转换是toBinaryString,我得到正确的转换"11111111"然后转换为数组的下一步.这是它出错的地方,我认为它是getChar线.
int x = 255;
string=(Integer.toBinaryString(x));
int[] array = new int[string.length()];
for (int i=0; i< string.length(); i++){
array[i] = string.getChar(i);
Log.d("TAG", " Data " + array[1] "," + array[2] + "," + array[3]);
Run Code Online (Sandbox Code Playgroud)
日志显示(数据0,0,0)我要查找的结果是(数据1,1,1)
这是最终的代码,它的工作原理.
// NEW
int x = 128;
string=(Integer.toBinaryString(x));
int[] array = new int[string.length()];
for (int i=0; i < string.length(); i++) {
array[i] = Integer.parseInt(string.substring(i,i+1));
}
Log.d("TAG", "Data " + array[0] + "" + array[1]+ "" + array[2] + "" + array[3]+ " " + array[4]+ "" …Run Code Online (Sandbox Code Playgroud)