java 枚举值赋值_【java】关于 枚举 的赋值问题

红太狼 2022-11-12 02:47 326阅读 0赞

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

不知你想拿它们怎样,非要给他们赋值!?

如果想用结构体,应该直接使用类。

发表评论

表情:
评论列表 (有 0 条评论,326人围观)

还没有评论,来说两句吧...

相关阅读

    相关 类型enum用法赋值

    枚举常量是一种枚举类型中的值,及枚举值,枚举类型是由用户自定义的,只用用户在程序中定义它才能被使用。创建一个枚举类型的基本语法: enum 枚举类型名\{ 枚举值1,枚举值

    相关 Java进阶

    枚举进阶 上一节我们讲了[枚举初识][Link 1] 里面主要讲了枚举的实现原理,我们从编译器的角度看了枚举的底层实现以及枚举常用的方法 今天我们看一下枚举添加自定义方