2 回答

TA貢獻1786條經驗 獲得超13個贊
復制代碼是一種不好的做法。現在你有重復的方法findViewById。為避免這種情況,您應該在類中創建一個全局變量Activity1。這也將是您的問題的解決方案:
public class Activity1 extends AppCompatActivity {
private final Double TIP = 10.0;
private TextView tipView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_1);
setDefaultValues();
}
private void setDefaultValues() {
tipView = findViewById(R.id.tipView);
tipView.setText(getString(R.string.main_msg_tip, Double.toString(TIP)));
}
public void onClickToggleButton(View view) {
switch (view.getId()) {
case (R.id.toggleButtonBad):
tipView.setText(getString(R.string.main_msg_tip, Double.toString(BAD)));
break;
}
}
}

TA貢獻1895條經驗 獲得超3個贊
您正在嘗試從單擊視圖(例如按鈕)中查找視圖,而“tipView”位于主視圖容器中。所以更新你的方法“onClickToggleButton”如下:
public void onClickToggleButton(View view) {
TextView tipView = findViewById(R.id.tipView);
switch (view.getId()) {
case (R.id.toggleButtonBad):
tipView.setText(getString(R.string.main_msg_tip, Double.toString(BAD)));
break;
}
}
添加回答
舉報