我是android的新手。我正在考虑在android中实现一个简单的计算器来掌握android中的基础知识。我想显示带有数字和数学运算的键盘,当用户按下键时,编辑文本中会显示相应的数字。我尝试使用gettext()并更新编辑文本的内容,但它只显示按下按钮的内容。另外我如何阅读按钮的内容以便在代码中进行数学运算?任何帮助将不胜感激。
的问候,
原始
答案 0 :(得分:6)
设置EditText的内容:
EditText text = (EditText) findViewById(R.id.your_text);
text.setText("Display this text");
我不会试图从按钮中拉出文本并将其用作整数,而是只为每个“知道”按钮值的人添加一个点击监听器:
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
}
});
答案 1 :(得分:5)
当你在计算器中执行数字按钮时,处理按钮的标题作为实际数据几乎是唯一可接受的做法,所以我不知道这是否适用于'android basics'; )
不管;
当用户按下某个键(按钮?)时,您是否要显示相应的数字。然后你说getText
只是向你显示按下按钮的内容......这不正是你所要求的吗?您可能需要提供一些代码并告诉我们什么不符合您的预期。但是如果一个按钮的文本为'8',并且你想在数学运算中将其视为八,那么你需要解析它:
Integer myNumber = Integer.parse(myButton.getText());
...如果myButton
的文本没有解析为整数,那么当然会抛出异常。
编辑,评论
根据您在评论中提到的问题的解释,是的,setText()
将文本完全重置为传递的值,但如果您只是getText()
,则可以使用它的组合想要将某些东西附加到当前值:
myEditText.setText( myEditText.getText() + " " + myButton.getText() );
答案 2 :(得分:4)
请尝试以下代码。
EditText x = (EditText)findviewbyid(R.id.abc);
不要使用x.setText()
;相反,使用x.append(Your variable or value here)
。这不会清除前一个按钮的文本。
答案 3 :(得分:2)
在EditText中设置按钮的文本:
EditText edittext=(EditText)findviewById(R.id.edittext);
Button num1=(Button)findViewById(R.id.button_num1);
Button num2=(Button)findviewById(R.id.button_num2);
num1.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
edittext.append("1");
}
});
num1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
edittext.append("2");
}
});
对于简单的calcultaor,请参阅here 它会帮助你在android中创建一个计算器。