我想在片段中使用带有类型编号的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
如何解决此问题?
谢谢!
答案 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);