Android:如何通过按钮单击设置编辑文本的内容?

Pri*_*han 6 android

我是android的新手.我正在考虑在android中实现一个简单的计算器来掌握android中的基础知识.我想显示带有数字和数学运算的键盘,当用户按下键时,编辑文本中会显示相应的数字.我尝试使用gettext()并更新编辑文本的内容,但它只显示按下按钮的内容.另外我如何阅读按钮的内容以便在代码中进行数学运算?任何帮助将非常感激.

问候,

原始

Eri*_*ass 6

要设置EditText的内容:

EditText text = (EditText) findViewById(R.id.your_text);
text.setText("Display this text");
Run Code Online (Sandbox Code Playgroud)

我没有尝试从按钮中拉出文本并将其用作整数,而是向每个"知道"其按钮值的按钮添加一个点击监听器:

Button button = (Button) findViewById(R.id.num_1);
button.setOnClickListener(new View.OnClickListener() {
    @Override public void onClick(View v) {
        // Do something with the value of the button
    }
});
Run Code Online (Sandbox Code Playgroud)


Dav*_*und 5

当你在计算器中执行数字按钮时,将按钮的标题视为实际数据几乎是唯一可接受的做法,所以我不知道这是否适用于'android basics';)

而不管;

当用户按下某个键(按钮?)时,您声明要显示相应的数字.然后你说getText只是向你展示按下按钮的内容......这不正是你所要求的吗?您可能需要提供一些代码并告诉我们什么不符合您的预期.但是如果一个按钮的文本为'8',并且你想在数学运算中将其视为八,那么你需要解析它:

Integer myNumber = Integer.parse(myButton.getText());
Run Code Online (Sandbox Code Playgroud)

...如果文本myButton没有解析为整数,那么当然会抛出异常.

编辑,评论

从您在评论中给出的问题的解释,是的,setText()完全将文本重置为它传递的值,但是您可以使用它的组合,getText()如果您只想将某些内容附加到当前值:

myEditText.setText( myEditText.getText() + " " + myButton.getText() );
Run Code Online (Sandbox Code Playgroud)


小智 5

请尝试以下代码。

EditText x = (EditText)findviewbyid(R.id.abc);
Run Code Online (Sandbox Code Playgroud)

不要用x.setText(); 而是使用x.append(Your variable or value here)。这不会清除来自上一个按钮的文本。