Android: setText from button,其中按钮文本由字符串给出
Android: setText from button, where button text is given by string
我刚开始学习 android(和 java,是的,我正在同时学习这两个)。作为开发技能的基础项目,我一直在尝试为计算器编写代码。
键盘由按钮组成,我选择通过使用字符串在这些按钮上放置文本(我读过这是在硬编码文本上使用字符串的好习惯)。
然后,当按钮 'clicked' 时,它们 append/setText 是 TypeView 项目(作为计算器应该!)
字符串的使用给我带来了问题。
如果我在按钮上硬编码文本,我可以使用这个:
//this part for initial reading as 0 and for disp usage later
TextView disp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_calculator);
disp=(TextView)findViewById(R.id.textView);
disp.setText("0");
}
public boolean onCreateOptionsMenu(Menu menu) {}
static boolean isempty=(true);
public void onClick(View btn)
{
Button bt = (Button)btn;
if (disp.getText().length()>7) return;
if (isempty)
{
disp.setText(bt.getText());
isempty=false;
}
else
{
disp.append(bt.getText());
}
}
为了将文本写入屏幕。
是的,它有很多工作,我知道。请有人阐明如何从字符串中 append/setText 吗? (即如何修改disp.append/disp.setText部分
提前致谢!!!
我会删除 if/else 语句并添加
String newText = disp.getText().toString() + bt.getText().toString();
disp.setText(newText);
isempty = newText.isEmpty();
但是我不确定为什么你之前的代码不对。
编辑(见评论)
disp.append(bt.getText());
isempty = true;
您需要在 res/values 中创建一个名为 string.xml 的文件。
文件应具有以下格式:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello!</string>
</resources>
现在要访问该字符串,请在您的代码中执行以下操作:
String string = getString(R.string.hello);
现在您可以将该字符串设置为您的按钮。
接下来,在您的代码中,您必须将点击侦听器设置为计算器中的按钮,在这种情况下,TextView 不应处理任何事件。每个按钮的事件将像这样声明:
btn01.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Button btn = (Button) v;
disp.append(btn.getText());
}
});
在用于添加、减去等的运算符按钮上,您需要事件侦听器如下所示:
btnAdd.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// handle the adding
}
});
我刚开始学习 android(和 java,是的,我正在同时学习这两个)。作为开发技能的基础项目,我一直在尝试为计算器编写代码。
键盘由按钮组成,我选择通过使用字符串在这些按钮上放置文本(我读过这是在硬编码文本上使用字符串的好习惯)。 然后,当按钮 'clicked' 时,它们 append/setText 是 TypeView 项目(作为计算器应该!)
字符串的使用给我带来了问题。
如果我在按钮上硬编码文本,我可以使用这个:
//this part for initial reading as 0 and for disp usage later
TextView disp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_calculator);
disp=(TextView)findViewById(R.id.textView);
disp.setText("0");
}
public boolean onCreateOptionsMenu(Menu menu) {}
static boolean isempty=(true);
public void onClick(View btn)
{
Button bt = (Button)btn;
if (disp.getText().length()>7) return;
if (isempty)
{
disp.setText(bt.getText());
isempty=false;
}
else
{
disp.append(bt.getText());
}
}
为了将文本写入屏幕。
是的,它有很多工作,我知道。请有人阐明如何从字符串中 append/setText 吗? (即如何修改disp.append/disp.setText部分
提前致谢!!!
我会删除 if/else 语句并添加
String newText = disp.getText().toString() + bt.getText().toString();
disp.setText(newText);
isempty = newText.isEmpty();
但是我不确定为什么你之前的代码不对。
编辑(见评论)
disp.append(bt.getText());
isempty = true;
您需要在 res/values 中创建一个名为 string.xml 的文件。
文件应具有以下格式:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello!</string>
</resources>
现在要访问该字符串,请在您的代码中执行以下操作:
String string = getString(R.string.hello);
现在您可以将该字符串设置为您的按钮。
接下来,在您的代码中,您必须将点击侦听器设置为计算器中的按钮,在这种情况下,TextView 不应处理任何事件。每个按钮的事件将像这样声明:
btn01.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Button btn = (Button) v;
disp.append(btn.getText());
}
});
在用于添加、减去等的运算符按钮上,您需要事件侦听器如下所示:
btnAdd.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// handle the adding
}
});