如何创建数字键盘

时间:2013-06-14 03:53:20

标签: android string button numpad

我正在尝试创建一个简单的数字Pad。我正在向TextView获取信息,但每次点击新按钮时它都会删除旧按钮。如何保留TextView中的内容并添加新内容。你推1它去TextView,你推两个它去TextView但删除之前在那里的“1”。当你按下两个按钮时,我希望“1”保持不变。

final TextView singlevalue = (TextView) findViewById(R.id.priceInput);
one.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
        final Button one = (Button) findViewById(R.id.one);
        final String stringone = one.getText().toString();
        singlevalue.setText(String.valueOf(stringone);
    }
});

我知道这样的事情+“”追求(stringone)但是????

two.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
        final Button two = (Button) findViewById(R.id.two);
        final String stringtwo = two.getText().toString();
        singlevalue.setText(String.valueOf(stringtwo)+"");
    }
});

4 个答案:

答案 0 :(得分:1)

您需要全局获取一个变量,并在单击按钮时添加新输入的值

前言

public String totalString = "";


final TextView singlevalue = (TextView) findViewById(R.id.priceInput);
one.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
        final Button one = (Button) findViewById(R.id.one);
        final String stringone = one.getText().toString();
        totalString = totalString+""+stringone ;
        singlevalue.setText(totalString);
    }
});

two.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
        final Button two = (Button) findViewById(R.id.two);
        final String stringtwo = two.getText().toString();
        totalString = totalString+""+stringtwo ;
        singlevalue.setText(totalString);
    }
});

答案 1 :(得分:1)

试试这个:

singlevalue.setText(singlevalue.getText()。toString()+“”+ String.valueOf(stringtwo));

希望帮助

答案 2 :(得分:1)

这应该有用......

final TextView singlevalue = (TextView) findViewById(R.id.priceInput);
final Button one = (Button) findViewById(R.id.one);
final Button two = (Button) findViewById(R.id.two);
String stringone = new String();
String stringtwo = new String();

one.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
        stringone = one.getText().toString();
        singlevalue.setText(stringone+""+stringtwo);
    }
});

two.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
        stringtwo = two.getText().toString();
        singlevalue.setText(stringone+""+stringtwo);
    }
});

答案 3 :(得分:1)

除了Ram Kiran的回答之外,我还想提出一些改进。

首先,我认为findViewById不应该放在onClick方法中。 每次按下按钮时,您的应用都会尝试查找视图,我很确定这可以完成一次。 第一个改进应该是删除onClick方法的findViewById。

作为第二项改进,您可以从xml文件中的onClick方法中受益,并使用android:onclick="addText" 这只是让你创建一个方法:

public void addText(View v)
在您的Java代码中

而不是为每个TextView执行此操作。 View v in参数包含数据作为文本,因此甚至不需要创建findViewById! ((TextView)v).getText()足以获取文本值!

所以,你的代码将是几行而不是一个巨大的java文件

作为第三个改进,我会使用一个按钮(或ImageButton)而不是TextView,并使用多个状态(按钮将为您完成)按下或选择按钮时使用视觉线索。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:state_pressed="true"
   android:drawable="@drawable/login_selected" /> <!-- pressed -->
  <item android:state_focused="true"
   android:drawable="@drawable/login_mouse_over" /> <!-- focused -->
  <item android:drawable="@drawable/login" /> <!-- default -->
</selector>

如果您需要更多信息,请发表评论; - )