完全を期すために:
この部分:
final EditText fn = (EditText) findViewById(R.id.editText1);
現在実行中のアクティビティのレイアウトに「editText1」という ID を持つ 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("");
メソッド setText が OnClickListener に存在しないというエラーは、おそらくその OnClickListener 内で setText("") を呼び出そうとしたことが原因です。エラーメッセージが説明するように: OnClickListener は setText メソッドについて何も知りません - EditText だけがそれを知っているので、EditText の参照で setText("") を呼び出す必要があります。