我是Android编程的新手,如果这个问题听起来很愚蠢,请原谅。我正在为Android开发一个计算器。所以我有大约20个按钮和一个文本字段。每当按下按钮时,我都会更新文本字段,以便用户知道他输入了什么。
但是,当我更新文本字段时,应用程序崩溃了。
updateExpression是按下任何按钮时调用的方法。
public void updateExpression (View v)
{
Log.d("string", "updateExpression Called");
EditText text = (EditText) findViewById(R.id.name);
text.setText("HELLO EVERYONE");
}
按钮的.xml文件为:
<Button
android:id="@+id/Button03"
android:layout_width="70dp"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/name"
android:layout_below="@+id/name"
android:onClick="updateExpression"
android:text="C" />
// goes on for 20 buttons with different ids and text
<TextView
android:id="@+id/name"
android:layout_width="fill_parent"
android:text="@string/edit_message"
android:layout_height="33dp"
android:textColor="@color/opaque_red"/>
</RelativeLayout>
最后,logcat有字符串数据"updateExpression Called“。然而,紧接着它就崩溃了。该错误具有标记AndroidRuntime致命异常main。在这之后还有更多的错误。一个相关的问题(根据我的说法是)
原因: java.lang.classCatException: android.widget.TextView无法转换为android.widget.EditText
请帮帮忙。
谢谢。
发布于 2012-12-16 02:10:18
正如错误所述,您正在尝试将TextView转换为EditText。这是两个独立的类。
EditText text = (EditText) findViewById(R.id.name);
应该是
TextView text = (TextView) findViewById(R.id.name);
发布于 2012-12-16 02:09:40
在xml中,它是代码中的TextView
EditText text = (EditText) findViewById(R.id.name);
这是一个EditText
。
那就选一个吧。这取决于您的需求。如果用户能够键入此View
,则使用EditText
。如果它是只读的,并且您将处理这些文本,请选择TextView
。
https://stackoverflow.com/questions/13897978
复制相似问题