Java Android检查字符串中的双字符

Java Android检查字符串中的双字符,java,android,regex,Java,Android,Regex,我的java代码 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.getTe

我的java代码

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() );


}

我的xml代码

当我单击0到9之间的按钮时,我会创建数字。但我也得到了点。和负号。如何在我的文本视图中检查,使我的数字中只允许有一个点,并且允许在数字的顶部有负号


谢谢,在advanced…

中,我认为单靠布局属性无法实现这一点

你可以根据什么来进行验证,也就是基于什么。基本上,您为
EditText
实现了一个,它的方法在每次文本更改时都会被调用

从那时起,您只需要进行适当的正则表达式验证,这样做应该:

<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" />
String pattern = "^[0-9]+\.[0-9]*$";
String yourEditTextValue;
if (yourEditTextValue.matches(pattern)) {
} else {
   // set edit text valeu to empty string, show erorr
}