我正在尝试创建一个简单的数字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)+"");
}
});
答案 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>
如果您需要更多信息,请发表评论; - )