java 枚举值赋值_【java】关于 枚举 的赋值问题
public void huadonganniu(View v){
/*Intent intent1=new Intent();
intent1.setClassName(“com.example.t”, “com.example.t.TService”);*/
btn_huadongkaiguan=(ToggleButton) findViewById(R.id.btn_huadongkaiguan);
et_guanbi=(EditText) findViewById(R.id.et_guanbi);
et_ok=(EditText) findViewById(R.id.et_ok);
et_caidan=(EditText) findViewById(R.id.et_caidan);
et_shezhi=(EditText) findViewById(R.id.et_shezhi);
et_fangxiang=(EditText) findViewById(R.id.et_fangxiang);
et_fanhui=(EditText) findViewById(R.id.et_fanhui);
et_a=(EditText) findViewById(R.id.et_a);
et_b=(EditText) findViewById(R.id.et_b);
et_c=(EditText) findViewById(R.id.et_c);
et_x=(EditText) findViewById(R.id.et_x);
String msg3=btn_huadongkaiguan.getText().toString();
EditText[] arr=new EditText[10];
arr=new EditText[]{et_guanbi,et_ok,et_caidan,et_shezhi,
et_fangxiang,et_fanhui,et_a,et_b,et_c,et_x};
if (msg3.equals(“guan”)) {
for (int i = 0; i < arr.length; i++) {
arr[i].setText(“”);
arr[i].addTextChangedListener(new NewTextWatcher(arr[i],i));
}
}
}
public enum anjian{guanbi,ok,caidan,shezhi,fangxiang,fanhui,a,b,c,x};
anjian onet,twot,thr,fro,fiv,six,sev,eig,nin,ten;
class NewTextWatcher implements TextWatcher{
private EditText editText;
private int z;
public NewTextWatcher(EditText editText, int x) {
this.editText = editText;
this.z=x;
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// TODO Auto-generated method stub
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
String msg4=editText.getText().toString();
int data1=Integer.parseInt(msg4);
if (z==0) {
}
System.out.println(z+msg4);
}
@Override
public void afterTextChanged(Editable s) {
}
}
就是在那个if(z==0)
那块需要把data1的值赋给enum anjian里的guanbi这个元素
直接在if(z==0)那块写anjian.guanbi=data1 报错了
但是 data1好像也无法赋值给enum anjian 下的onet变量 第一次接触到 枚举这个概念 请教下 各位大牛了 又得麻烦你们了
回答
enum的成员变量都是final常量,当然anjian.guanbi = data1会报错了。应该这么写
anjian aj = anjian.guanbi;
题主的代码书写真会让人看了想吐槽,尽量规范一点吧
enum MyButton {
OPEN, CLOSE, SETTING
}
这样不好一些吗!
枚举型相当于常量,无法给它赋值。
你可以认为它们是有名字的int值。
枚举型都是作为constant使用(好比这样:static final int OK=1,NG=2;),
不知你想拿它们怎样,非要给他们赋值!?
如果想用结构体,应该直接使用类。
还没有评论,来说两句吧...