Android studio:錯(cuò)誤: 需要常量表達(dá)式
將一個(gè)項(xiàng)目作為library,通過import Moudle導(dǎo)入一個(gè)新項(xiàng)目引用時(shí),爆出這個(gè)錯(cuò)誤:需要常量表達(dá)式,定位到switch。于是百度一下,解決方法為把switch case,改成if else,即:
switch (v.getId()) {
// 點(diǎn)擊了清除按鈕
case R.id.btn_clear:
clear();
break;
// 點(diǎn)擊了取消按鈕
case R.id.btn_cancel:
break;
// 點(diǎn)擊了加、減、乘、除按鈕
case R.id.btn_plus:
case R.id.btn_minus:
case R.id.btn_multiply:
case R.id.btn_divide:
operator = inputText; // 運(yùn)算符
refreshText(showText + operator);
break;
// 點(diǎn)擊了等號(hào)按鈕
case R.id.btn_equal:
// 加減乘除四則運(yùn)算
double calculate_result = calculateFour();
refreshOperate(String.valueOf(calculate_result));
refreshText(showText + "=" + result);
break;
// 點(diǎn)擊了開根號(hào)按鈕
case R.id.ib_sqrt:
double sqrt_result = Math.sqrt(Double.parseDouble(firstNum));
refreshOperate(String.valueOf(sqrt_result));
refreshText(showText + "√=" + result);
break;
// 點(diǎn)擊了求倒數(shù)按鈕
case R.id.btn_reciprocal:
double reciprocal_result = 1.0 / Double.parseDouble(firstNum);
refreshOperate(String.valueOf(reciprocal_result));
refreshText(showText + "/=" + result);
break;
// 點(diǎn)擊了其他按鈕,包括數(shù)字和小數(shù)點(diǎn)
default:
// 上次的運(yùn)算結(jié)果已經(jīng)出來了
if (result.length() > 0 && operator.equals("")) {
clear();
}
// 無運(yùn)算符,則繼續(xù)拼接第一個(gè)操作數(shù)
if (operator.equals("")) {
firstNum = firstNum + inputText;
} else {
// 有運(yùn)算符,則繼續(xù)拼接第二個(gè)操作數(shù)
secondNum = secondNum + inputText;
}
// 整數(shù)不需要前面的0
if (showText.equals("0") && !inputText.equals(".")) {
refreshText(inputText);
} else {
refreshText(showText + inputText);
}
break;
}
改為:文章來源:http://www.zghlxwxcb.cn/news/detail-834457.html
@Override
public void onClick(View v) {
String inputText;
if(v.getId() == R.id.btn_sqrt){
inputText = "廠";
} else {
inputText = ((TextView) v).getText().toString();
}
if (v.getId() == R.id.btn_clear){
clear();
} else if (v.getId() == R.id.btn_cancel) {
} else if (v.getId() == R.id.btn_plus || v.getId() == R.id.btn_minus || v.getId() == R.id.btn_multiply || v.getId() == R.id.btn_divide) {
operator = inputText;
refreshText(showText + operator);
} else if(v.getId() == R.id.btn_equal) {
double calculate_result = calculateFour();
refreshOperate(String.valueOf(calculate_result));
refreshText(showText + "=" + result);
} else if(v.getId() == R.id.btn_sqrt) {
double sqrt_result = Math.sqrt(Double.parseDouble(firstNum));
refreshOperate(String.valueOf(sqrt_result));
refreshText(showText+"廠="+result);
} else if(v.getId() == R.id.btn_reciprocal){
double reciprocal_result = 1.0 / Double.parseDouble(firstNum);
refreshOperate(String.valueOf(reciprocal_result));
refreshText(showText+"/="+result);
} else {
if(result.length() > 0 && operator.equals("")){
clear();
}
if(operator.equals("")){
firstNum = firstNum + inputText;
} else {
secondNum = secondNum + inputText;
}
if(showText.equals("0") && !inputText.equals(".")){
refreshText(inputText);
} else {
refreshText(showText+inputText);
}
}
}
具體原因:http://tools.android.com/tips/non-constant-fields.文章來源地址http://www.zghlxwxcb.cn/news/detail-834457.html
到了這里,關(guān)于Android studio:錯(cuò)誤: 需要常量表達(dá)式的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!