如何在片段中使用数字editText

时间:2018-09-27 16:42:57

标签: android android-studio android-fragments android-edittext

我想在片段中使用带有类型编号的editText。
如果使用此功能,它将无效:

private Number editText;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.fragment_manual, container, false);

    Button errechnen_button = (Button) v.findViewById(R.id.errechnen_button);
    final TextView ergebnis = (TextView) v.findViewById(R.id.ergebnis);
    Number editText = (Number) v.findViewById(R.id.editText);

    errechnen_button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            ergebnis.setText("");

            int manual_time = Integer.parseInt (ergebnis.getText().toString());
            ergebnis.setText("Der Blitzeinschlag war circa " + String.valueOf((float)Math.round(0.3432*manual_time *100) /100) + " meter entfernt.");
        }
    });

    return v;
}

错误位于

  

Number editText = (Number)v.findViewById(R.id.editText);

它说:

  

不可转换的类型;无法将android.view.View投射到   java.lang.Number

如何解决此问题?

谢谢!

2 个答案:

答案 0 :(得分:4)

XML中的类型是EditText而不是Number,因此请使用Editext作为

EditText editText = (EditText) v.findViewById(R.id.editText);

对于数字,请使用inputType

android:inputType="number" 

例如

<EditText
    android:id="@+id/editText"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:inputType="number" />

您也可以使用android:digits来使用特定数字

答案 1 :(得分:2)

您正在将Edittext投射到Number

Number editText = (Number) v.findViewById(R.id.editText);

替换为:

Edittext editText = (Edittext) v.findViewById(R.id.editText);