我试图在单击按钮时调用的函数中使用 view.findViewById() 获取 TextView 对象。在 onClickButton() 中返回 null,而在其他函数 setDefaultValues() 中它工作正常。
Activity1.java
public class Activity1 extends AppCompatActivity {
private final Double TIP = 10.0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_1);
setDefaultValues();
}
private void setDefaultValues() {
TextView tipView = findViewById(R.id.tipView);
tipView.setText(getString(R.string.main_msg_tip,Double.toString(TIP)));
}
public void onClickToggleButton(View view){
TextView tipView = view.findViewById(R.id.tipView);
switch (view.getId()) {
case (R.id.toggleButtonBad):
tipView.setText(getString(R.string.main_msg_tip, Double.toString(BAD)));
break;
}
}
测试应用程序时显示以下错误消息:
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object referenceat com.example.chandan.learning.Activity1.onClickToggleButton
编辑:该activity_1.xml文件确实包含TextView带有tipViewid 的元素,因此 XML 文件中不存在元素的理论不成立。
元芳怎么了
开满天机
蛊毒传说
随时随地看视频慕课网APP
相关分类