为了完整起见:
这部分:
final EditText fn = (EditText) findViewById(R.id.editText1);
是正确的,前提是您当前运行的 Activity 的布局包含 ID 为“editText1”的 EditText 的声明,这里是此类布局文件的示例。此布局文件称为“ my_layout ”:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
在您的活动中,您必须在 onCreate 中调用此方法以将上述布局文件设置为活动的布局文件:
public abstract class MyActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.my_layout);
}
鉴于上述情况,您现在可以重置 EditText 中的文本(称为“fn” - 请参阅第一个代码片段):
fn.setText("");
您遇到的错误说 OnClickListener 中不存在 setText 方法,这可能源于您尝试在该 OnClickListener 中调用 setText("")。正如错误消息所解释的: OnClickListener 对 setText 方法一无所知 - 只有 EditText 知道它,因此您需要在 EditText 的引用上调用 setText("")。