Android:来自按钮的setText,其中按钮文本由字符串给出

时间:2015-02-19 22:48:48

标签: java android string button settext

我刚刚开始使用android(和java,是的,我正在同时学习这两个)。作为开发技能的基础项目,我一直在尝试为计算器编写代码。

键盘是由按钮组成的,我选择通过使用字符串将文本放在这些上(我已经读过这是在硬编码文本上使用字符串的好习惯)。 然后,当“点击”按钮时,它们会附加/ ViewText的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());
      }
}

将文字写入屏幕。

是的,我知道它有很多工作要做。有人可以阐明如何从字符串中追加/ setText吗? (即如何修改disp.append / disp.setText部分

提前致谢!!!

2 个答案:

答案 0 :(得分:0)

我会删除if / else语句并添加

String newText = disp.getText().toString() + bt.getText().toString();
disp.setText(newText);
isempty = newText.isEmpty();

但我不确定为什么你以前的代码不行。

编辑(见评论)

disp.append(bt.getText());
isempty = true;

答案 1 :(得分:0)

您需要在res / values中创建一个名为string.xml的文件。

该文件应具有以下格式:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello!</string>
</resources>

现在要在您的代码上访问该字符串:

String string = getString(R.string.hello);

现在您可以将该字符串设置为按钮。

接下来,在您的代码中,您必须将click侦听器设置为计算器中的按钮,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                
         }
     });