按钮未将句点“.”作为字符串传递给edittext对象

jdgnovmf  于 2021-07-11  发布在  Java
关注(0)|答案(1)|浏览(247)

所以我从android dev开始,我有一个问题,我似乎不能左右我的头。我建立一个计算器显然利用了一系列的按钮。我可以让其他按钮在edittext中发布相应的数字,但是点/句点不会出现,即使它在几乎所有方面都是相同的,并且在java代码中以相同的方式链接起来。我的代码如下:我显示了9号按钮的xml,然后显示了十进制按钮以显示它们的相似性

<Button
    android:id="@+id/button9"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="8dp"
    android:layout_marginLeft="8dp"
    android:minWidth="48dp"
    android:text="9"
    app:layout_constraintBaseline_toBaselineOf="@+id/button8"
    app:layout_constraintStart_toEndOf="@+id/button8" />

<Button
    android:id="@+id/buttonDot"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="8dp"
    android:layout_marginLeft="8dp"
    android:minWidth="48dp"
    android:text="."
    app:layout_constraintBaseline_toBaselineOf="@+id/button0"
    app:layout_constraintStart_toEndOf="@+id/button0" />

初始化和使用它们的java如下

private EditText newNumber;
private EditText baseNumber;
private TextView operation;

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        baseNumber = (EditText) findViewById(R.id.baseNumber);
        newNumber = (EditText) findViewById(R.id.newNumber);
        operation = (TextView) findViewById(R.id.operation);

        Button button9 = (Button) findViewById(R.id.button9);
        Button buttonDot = (Button) findViewById(R.id.buttonDot);

        View.OnClickListener listener = new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Button b = (Button) v;
                newNumber.append(b.getText().toString());
            }
        };

        button9.setOnClickListener(listener);
        buttonDot.setOnClickListener(listener);

我已经去掉了很多其他的按钮,这样就不会有太多的列表了。简单地显示一个按钮,似乎工作-按钮9,和一个不-按钮不,尽管被创建和初始化几乎相同。
非常感谢

qlzsbp2j

qlzsbp2j1#

将此添加到xml中的edittext:

android:inputType="numberSigned|number|numberDecimal"

如果它没有numberdecimal,那么它将不允许您输入十进制数。

相关问题