Android浮点和负数验证 public void updateDisplay(视图v) { 按钮按钮=(按钮)findViewById(R.id.button1); setOnClickListener(新视图.OnClickListener(){ 公共void onClick(视图){ tempNumber.setText(tempNumber.getText().toString()+((按钮)视图).getText()); } }); tempNumber.setText(tempNumber.getText().toString()+((按钮)v.getText()); }
我有一个小的和平的代码,更新和创建按钮点击数字。 一切正常,但我想对浮点数和负数进行一些验证 错误: 12.343.325.4 正确: 12.343(不得写入第二个点) 错误 12-324-45 正确的 -1234Android浮点和负数验证 public void updateDisplay(视图v) { 按钮按钮=(按钮)findViewById(R.id.button1); setOnClickListener(新视图.OnClickListener(){ 公共void onClick(视图){ tempNumber.setText(tempNumber.getText().toString()+((按钮)视图).getText()); } }); tempNumber.setText(tempNumber.getText().toString()+((按钮)v.getText()); },android,regex,Android,Regex,我有一个小的和平的代码,更新和创建按钮点击数字。 一切正常,但我想对浮点数和负数进行一些验证 错误: 12.343.325.4 正确: 12.343(不得写入第二个点) 错误 12-324-45 正确的 -1234 tempNumber是一个文本视图,我在其中显示结果,仅此而已。我不确定我是否理解您的要求,因为这似乎很容易,只要在onClick方法中添加多一点代码就可以防止错误的值。比如: public void updateDisplay(View v) { Button button
tempNumber是一个文本视图,我在其中显示结果,仅此而已。我不确定我是否理解您的要求,因为这似乎很容易,只要在onClick方法中添加多一点代码就可以防止错误的值。比如:
public void updateDisplay(View v)
{
Button button = (Button) findViewById(R.id.button1);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
tempNumber.setText(tempNumber.getText().toString() + ((Button) view).getText());
}
});
tempNumber.setText( tempNumber.getText().toString() + ((Button) v).getText() );
}
<Button
android:id="@+id/button1"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="0.1"
android:background="@drawable/button"
android:onClick="updateDisplay"
android:text="1"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:textColor="@drawable/button_tx_color"
android:textSize="15sp" />
<Button
android:id="@+id/button2"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="0.1"
android:background="@drawable/button"
android:onClick="updateDisplay"
android:text="2"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:textColor="@drawable/button_tx_color"
android:textSize="15sp" />
<Button
android:id="@+id/button3"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="0.1"
android:background="@drawable/button"
android:onClick="updateDisplay"
android:text="3"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:textColor="@drawable/button_tx_color"
android:textSize="15sp" />
<Button
android:id="@+id/button4"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="0.1"
android:background="@drawable/button"
android:onClick="updateDisplay"
android:text="4"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:textColor="@drawable/button_tx_color"
android:textSize="15sp" />
<Button
android:id="@+id/button5"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:onClick="updateDisplay"
android:layout_weight="0.1"
android:background="@drawable/button"
android:text="5"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:textColor="@drawable/button_tx_color"
android:textSize="15sp" />
<Button
android:id="@+id/button6"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:onClick="updateDisplay"
android:layout_weight="0.1"
android:background="@drawable/button"
android:text="6"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:textColor="@drawable/button_tx_color"
android:textSize="15sp" />
<Button
android:id="@+id/button7"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:onClick="updateDisplay"
android:layout_weight="0.1"
android:background="@drawable/button"
android:padding="0sp"
android:text="7"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:textColor="@drawable/button_tx_color"
android:textSize="15sp" />
<Button
android:id="@+id/button8"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:onClick="updateDisplay"
android:layout_weight="0.1"
android:background="@drawable/button"
android:text="8"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:textColor="@drawable/button_tx_color"
android:textSize="15sp" />
<Button
android:id="@+id/button9"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:onClick="updateDisplay"
android:layout_weight="0.1"
android:background="@drawable/button"
android:text="9"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:textColor="@drawable/button_tx_color"
android:textSize="15sp" />
<Button
android:id="@+id/button0"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:onClick="updateDisplay"
android:layout_weight="0.1"
android:background="@drawable/button"
android:text="0"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:textColor="@drawable/button_tx_color"
android:textSize="15sp" />
<Button
android:id="@+id/buttonDot"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:onClick="updateDisplay"
android:layout_weight="0.1"
android:background="@drawable/button"
android:text="."
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:textColor="@drawable/button_tx_color"
android:textSize="15sp" />
<Button
android:id="@+id/buttonM"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:onClick="updateDisplay"
android:layout_weight="0.1"
android:background="@drawable/button"
android:text="-"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:textColor="@drawable/button_tx_color"
android:textSize="15sp" />
上一个类只应创建一次,并使用setOnClickListener()分配给每个按钮
顺便说一句,另一种可能性是考虑使用普通的EditText作为输入,提供类型(类别)编号|类型(编号)标志|十进制|类型(编号)标志(签名)。然后,软键盘应该为用户提供一个数字键盘和过滤器,以防止出现错误的值。Android文档中的更多信息:看看NumberFormat:-您可以在那里设置数字样式的区域设置,当您解析一个数字时,您会得到返回的结果,如果出现问题,则设置为null。
new View.OnClickListener() {
private boolean dotPresent;
public void onClick(View view) {
String buttonText = ((Button)view).getText().toString();
boolean isDot = buttonText.equals(".");
boolean isSign = buttonText.equals("-");
int currentLength = tempNumber.getText().length();
if (isSign && currentLength != 0) return;
if (isDot && dotPresent) return;
tempNumber.setText(tempNumber.getText().toString() + buttonText);
if (isDot) dotPresent = true;
}
}