2

EditText ボックスをクリアする方法を確認するために検索を行ったところ、多くの結果が見つかりましたが、すべて一致しました。ボックスの変数を次のように作成します。

final EditText fn = (EditText) findViewById(R.id.editText1);

そして、次のように setText を使用します。

fn = setText("");

ただし、(すべてのプラグインと SDK がインストールされた状態で) Eclipse でこのコードを実装すると、次のエラーが表示されます。

私は何を間違っていますか?他の投稿で言及されていない、私が見逃しているステップはありましたか?

4

2 に答える 2

0

完全を期すために:

この部分:

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("") を呼び出す必要があります。

于 2013-03-25T14:04:10.493 に答える