Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带有单选按钮的TextWatcher实现_Java_Android_Android Fragments_Textwatcher_Android Textwatcher - Fatal编程技术网

Java 带有单选按钮的TextWatcher实现

Java 带有单选按钮的TextWatcher实现,java,android,android-fragments,textwatcher,android-textwatcher,Java,Android,Android Fragments,Textwatcher,Android Textwatcher,请参阅附件中的图片和代码片段以帮助解释。 从所附图像中,我希望用户输入成本,数量,然后选择包含税或排除税,在指示的位置自动生成新成本,无需按下按钮,但我无法这样做。有人请帮忙。谢谢 请看这里的图片 在实施建议的更改并尝试在成本字段中输入输入后,我遇到了如下所示的错误。请提供额外的反馈。谢谢 错误图像 将rgroup.setOnCheckedChangeListener移出update()方法并移到onCreateView()中。您不必每次更新文本时都设置侦听器 如果输入了有效值并且选中了其中

请参阅附件中的图片和代码片段以帮助解释。 从所附图像中,我希望用户输入成本数量,然后选择包含税排除税,在指示的位置自动生成新成本,无需按下
按钮
,但我无法这样做。有人请帮忙。谢谢

请看这里的图片

在实施建议的更改并尝试在成本字段中输入输入后,我遇到了如下所示的错误。请提供额外的反馈。谢谢

错误图像


rgroup.setOnCheckedChangeListener
移出update()方法并移到onCreateView()中。您不必每次更新文本时都设置侦听器

如果输入了有效值并且选中了其中一个复选框,则在文本输入后调用的更新方法可能只更新税务值

用其他建议更新

我将通过比较文本来查找单选按钮,因为您正在这样做,将来可能需要更改资源文件中的文本或应用其他区域设置,而此代码将停止工作

if(rb.getText() == "Include Tax")
我建议与id本身进行比较:

if (checkedId == R.id.radio1 )
另一个建议:

考虑将变量名更改为以小写字母开头。以大写字母开头使其看起来像类名或常量,并使代码更难阅读

private EditText itemText;
private EditText editCost;
private EditText editQuantity;
private EditText calcost;
private EdtiText rTax;
您还可以删除所有(部分)焦点更改侦听器,并在android drawable资源中设置这些属性。看一看

更新9/9/2016 22:22

更好一点,但正如您所发现的,如果rb从未初始化过,对update的调用可能会抛出一个空指针。您应该在update方法中检查null rb,并通知用户选择一个选项。您还可以在onCreateView中从一开始就将rb分配给这两个值中的任何一个,这样它就永远不会为null


在无线组回调中设置rb之后,您可能还应该添加对update()的调用。这将允许屏幕在选择选项后立即更新。

rgroup.setOnCheckedChangeListener
移出update()方法,并移到onCreateView()中。您不必每次更新文本时都设置侦听器

如果输入了有效值并且选中了其中一个复选框,则在文本输入后调用的更新方法可能只更新税务值

用其他建议更新

我将通过比较文本来查找单选按钮,因为您正在这样做,将来可能需要更改资源文件中的文本或应用其他区域设置,而此代码将停止工作

if(rb.getText() == "Include Tax")
我建议与id本身进行比较:

if (checkedId == R.id.radio1 )
另一个建议:

考虑将变量名更改为以小写字母开头。以大写字母开头使其看起来像类名或常量,并使代码更难阅读

private EditText itemText;
private EditText editCost;
private EditText editQuantity;
private EditText calcost;
private EdtiText rTax;
您还可以删除所有(部分)焦点更改侦听器,并在android drawable资源中设置这些属性。看一看

更新9/9/2016 22:22

更好一点,但正如您所发现的,如果rb从未初始化过,对update的调用可能会抛出一个空指针。您应该在update方法中检查null rb,并通知用户选择一个选项。您还可以在onCreateView中从一开始就将rb分配给这两个值中的任何一个,这样它就永远不会为null

在无线组回调中设置rb之后,您可能还应该添加对update()的调用。这将允许屏幕在他们选择选项后立即更新