View.OnClickListener radio1Clicked = v ->{
radioButton1.addTextChangedListener(textWatcher); //error under textWatcher : Illegal forward reference
//More Operations Running here ... };
View.OnClickListener radio2Clicked = v ->{
radioButton2.addTextChangedListener(textWatcher)};//error under textWatcher: Illegal forward reference
//More Operations Running here ... };
View.OnClickListener radio3Clicked = v ->{
radioButton2.addTextChangedListener(textWatcher)};//error under textWatcher: Illegal forward reference
//More Operations Running here ... };
TextWatcher textWatcher= new TextWatcher(){
//Declarations and other stuff
// RadioButton1
if (radioButton1.isChecked()) {
basePrintable = 50;
calculatePcs = (int) (50 / sqIn);
iPieces.setText(String.valueOf(calculatePcs ));
if (!checker)//check Switch {
iPriceOut.setText("150.0");
} else if (checker) //re-check Switch{
iPriceOut.setText("50.0");
}
}
// RadioButton1
if (radioButton1.isChecked()) {
basePrintable = 50;
calculatePcs = (int) (50 / sqIn);
iPieces.setText(String.valueOf(calculatePcs ));
if (!checker)//check Switch {
iPriceOut.setText("150.0");
} else if (checker) //re-check Switch{
iPriceOut.setText("50.0");
}
}
// RadioButton2
if (radioButton1.isChecked()) {...}
// RadioButton3
if (radioButton1.isChecked()) {...}
basePcs = Integer.parseInt(iPieces.getText().toString());
baseSheet =
Integer.parseInt(iShit.getText().toString());
basePrice =
Double.parseDouble(iPriceOut.getText().toString());
}
public void onCheckedChanged(CompoundButton switchInput, boolean isChecked) {
switchInput.addTextChangedListener(size);
if (!isChecked) {
switchInput.setText("...");
radioButton1.setText("...");
radioButton2.setText("...");
radioButton3.setText("...");
} else {
switchInput.setText("...");
radioButton1.setText("...");
radioButton2.setText("...");
radioButton3.setText("...");
}
}
谢谢你的帮助
我认为问题是您不能引用在里面单击的对象,而是使用传递的视图
View.OnClickListener o1 = v ->{
iOpt1.addTextChangedListener(size); //error: Illegal Forward Reference
if (iOpt1.isChecked()) {
iOpt2.setChecked(false);
iOpt3.setChecked(false);
}
iOpt1.setChecked(true);
};
改为
View.OnClickListener o1 = v ->{
v.addTextChangedListener(size); <--change here //error: Illegal Forward Reference
if (v.isChecked()) { <--change here
iOpt2.setChecked(false);
iOpt3.setChecked(false);
}
v.setChecked(true);<--change here
};
在单击视图时使用v
问题内容: 嗨,当我尝试从excel工作表中提取数据时,文件对象创建中出现了非法的前向引用错误。 如何解决呢? 问题答案: “非法前向引用”是指您试图在定义变量之前使用它。 在这种情况下,您尝试在的声明中调用on的方法。
问题内容: 我正在用Java编写游戏,该游戏由一排瓷砖组成。我将无法以独创性方式定义图块的边缘以及它们之间的相互关系,例如,要获得图块的相对边缘,我希望能够输入。但是,当使用枚举定义这些边时,我最终不得不在构造函数中转发至少其中两个引用: 有没有什么办法可以使用枚举来解决这个问题呢? 问题答案: 您可以这样做不是那么直观。
所以我有一个简单的应用程序,有一个按钮和一个文本视图,当按钮被点击(错误是应用程序只是崩溃)一个对话框弹出,从对话框弹出,将有一个文本字段和一个按钮。我将在文本字段中输入一个名称,当我单击该按钮时,文本视图(在主activity中)将被设置为我输入的名称(从alertdialog中)。 mainactivity.java Logcat中的错误
问题内容: 我试图编译其中一个Java类与拒绝 非法向前引用 错误,其中有问题的参考是词汇 后 的基准场。在显示相同行为时,将尽可能精简以下类: 并且的许多用途仅用作占位符,以删除不相关的代码段。 使用编译时,javac会显示以下错误消息: 因此,编译器抱怨的声明引用,而应在的声明范围内。但是,一旦删除了in 的声明的引用(例如,通过将第5行从更改为),编译器将接受该类。 如何解释呢?我对 前锋的
问题内容: 以下代码是否适用于合法正向引用?如果是,为什么? 问题答案: 上面的代码完全是合法的Java。在Java中,静态字段的初始化如下:首先,将所有字段的类型(0 ,或)设置为默认值,然后按照声明它们的顺序进行初始化。这意味着上述代码可以保证做到以下几点: 将和设置为零,因为这是s 的默认值。 通过调用进行初始化,以读取的值。由于尚未初始化,因此其值仍为0。 初始化为5。 这意味着它将取值为