无法从android中的TextView获取文本

时间:2018-06-15 22:38:09

标签: android textview

我已经在我的计算器应用程序中创建了以下函数,用于更新TextView(通过在此textview中获取旧文本和新字符串,然后将其连接并放置在textview中)。

  public class MainActivity extends AppCompatActivity {

    TextView displayTv;
    EditText inputEt;
    Button clearButton, numberButton, equalButton;
    double answer=0,operand;
    String operation;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        displayTv = findViewById(R.id.input_tv);
        displayTv.setText("");
        inputEt = findViewById(R.id.input_et);
        clearButton = findViewById(R.id.clear_bt);
        reset();



    }
   void updateTv(String s){
        String text = displayTv.getText().toString();
        Log.d("test",text);
        displayTv.setText(text+s);
    }
}

现在的问题是,即使textview之前有任何字符串,使用此函数也会将texttring中的旧字符串替换为new String" s"有意更新。 基本上是String" text"为空,因此不打印日志。 请帮帮我。

2 个答案:

答案 0 :(得分:0)

使用append()代替setText(),如下所示 -

void updateTv(String s){
    String text = displayTv.getText().toString();
    Log.d("test",text);
    displayTv.append(" " + s);
}

并根据需要调用updateTv()方法。

答案 1 :(得分:0)

试试这段代码..

    void updateTv(String s){
    StringBuffer stringBuffer=new StringBuffer();
    stringBuffer.append(displayTv.getText().toString() +"  "+ s);
    displayTv.setText(stringBuffer);   
}

如果要清除最后一个字符串,则使用set

        displayTv.setText("");