我想知道如何將 convert_and_multiply 方法中的字符串參數傳遞給 findViewById 方法,使字符串成為方法調用的一部分,而不再是字符串。例如,我想傳遞參數“fruit_1_price”,使其變為 findViewById(R.id.fruit_1_price);我正在閱讀 Java 中的“反射”,但我無法完全理解它,以及它是否適用于我的情況。我也嘗試使用字符串通配符和占位符,但我無法理解如何制作字符串,而不是字符串。感謝您的任何幫助。 @Override public void onClick(View view) { Double fruit_1_total = convert_and_multiply("fruit_1_price", "fruit_1_spinner");//, fruit_2_total, fruit_3_total; Toast.makeText(c, Double.toString(fruit_1_total),Toast.LENGTH_LONG).show(); } public double convert_and_multiply(String v, String s) { TextView price = findViewById(R.id.v); Spinner amount = findViewById(R.id.s); Double total = Double.valueOf(amount.getSelectedItem().toString()) * Double.parseDouble(price.getText().toString()); return total; }
2 回答
哈士奇WWW
TA貢獻1799條經驗 獲得超6個贊
將您的方法更改為此代碼:
public double convert_and_multiply(String v, String s) {
Resources res = getResources();
int id1 = res.getIdentifier(v, "id", getContext().getPackageName());
TextView price = findViewById(id1);
int id2 = res.getIdentifier(s, "id", getContext().getPackageName());
Spinner amount = findViewById(id2);
Double total = Double.valueOf(amount.getSelectedItem().toString()) * Double.parseDouble(price.getText().toString());
return total;
}
添加回答
舉報
0/150
提交
取消
