Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.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 持续更新文本_Java_Android - Fatal编程技术网

Java 持续更新文本

Java 持续更新文本,java,android,Java,Android,以下是我的文本字段、单选按钮等: et1 = Edit Text Field radioButton1 = Radio Button (part of group1) radioButton2 = Radio Button (part of group1) textView2 = Text View 我想做的是根据et1中的内容和选择的单选按钮不断更新textView2 我在想问题可能是这样做的方法convertUp/co

以下是我的文本字段、单选按钮等:

et1             =    Edit Text Field
radioButton1    =    Radio Button (part of group1)
radioButton2    =    Radio Button (part of group1)
textView2       =    Text View
我想做的是根据et1中的内容和选择的单选按钮不断更新textView2

我在想问题可能是这样做的方法convertUp/convertDown。它仅在实际单击单选按钮而未选中时运行

如果这是个问题,有人能告诉我怎么做吗。如果不是,有人能向我解释一下我错在哪里吗。我将非常感激。提前谢谢

以下是我使用的代码:

(“mark”是将在textView2中更新的变量,“value”是“mark”所依赖的变量-如方法中所示)


或者试试tv1.setText(“+mark”);在OnClickListener listener1和OnClickListener listener2中,您需要做几件事才能使其不断更新

首先,您需要一个
TextWatcher
用于
EditText
,它将在每次输入新字母时修改
textView

et1.addTextChangedListener(new TextWatcher() {
  @Override
  public void onTextChanged(CharSequence s, int start, int before, int count) { 
      try{
         value = Double.parseDouble(text.getText().toString());
      } catch (final NumberFormatException e) {
         value = 1.0;
      }

      if(rb1.isChecked()){ mark = convertUp(value);  }
      else{ mark = convertDown(value); }

      tv1.setText(""+mark); //will update ur tV every time you input a lleter
  }

  @Override
  public void beforeTextChanged(CharSequence s, int start, int count, int after) { }

  @Override
  public void afterTextChanged(Editable s) { }
});
如果您更改了
单选按钮

OnClickListener listener1 = new OnClickListener(){

        public void onClick(View v) {
            try{
              value = Double.parseDouble(text.getText().toString());
            } catch (final NumberFormatException e) {
              value = 1.0;
            }

            mark = convertUp(value);  

            tv1.setText(""+mark);  
        }        
    };

    OnClickListener listener2 = new OnClickListener(){

        public void onClick(View v) {
            try{
              value = Double.parseDouble(text.getText().toString());
            } catch (final NumberFormatException e) {
              value = 1.0;
            }

            mark = convertDown(value);   

            tv1.setText(""+mark); 
        }     
    };

希望有帮助!祝你好运

您应该移动
value=Double.parseDouble(text.getText().toString())onClick()
需要beforeTextChanged()还是beforeTextChanged()呢?一点也不需要,但我认为方法
addTextChangedListener
需要它!尝试删除它们,看看是否有错误。哦,当然,覆盖并不意味着它们是必需的,但不需要使用。它不允许删除方法,因为在尝试“访问内部类中的局部变量”时遇到问题。我应该在哪里声明对象text、tv1等。我在onCreate方法中尝试过,该方法不允许全局访问变量。并且将变量声明在与mark相同的位置,value会产生NullPointerException运行时错误。没关系,修复了它,感谢您的回答。正是我需要的
OnClickListener listener1 = new OnClickListener(){

        public void onClick(View v) {
            try{
              value = Double.parseDouble(text.getText().toString());
            } catch (final NumberFormatException e) {
              value = 1.0;
            }

            mark = convertUp(value);  

            tv1.setText(""+mark);  
        }        
    };

    OnClickListener listener2 = new OnClickListener(){

        public void onClick(View v) {
            try{
              value = Double.parseDouble(text.getText().toString());
            } catch (final NumberFormatException e) {
              value = 1.0;
            }

            mark = convertDown(value);   

            tv1.setText(""+mark); 
        }     
    };