3

Button と EditText の次のコードで上記のエラーが発生しています。なぜそれが来るのか、私にはわかりません。ここで正確に何がうまくいかなかったのかを理解して教えていただければ、それは素晴らしいことです。

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class Activity2 extends Activity {

    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity2);

        Button btn = (Button) findViewByID(R.id.btn_OK);
        btn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                Intent data = new Intent();

                EditText txt_username = (EditText) findViewByID(R.id.txt_username);
                data.setData(Uri.parse(txt_username.getText().toString()));
                setResult(RESULT_OK, data);
                finish();
            }
        });

    }

}

リンクで見ようとしました メソッド setOnClickListener(new View.OnClickListener(){}) はタイプ imageButton1 に対して定義されて いませんが、私には使用できません。

4

3 に答える 3

3

タイプミスがあります:

です EditText txt_username = (EditText) findViewById(R.id.txt_username)

いいえ EditText txt_username = (EditText) findViewByID(R.id.txt_username);

最後の文字dは小文字です

于 2013-07-01T09:06:16.973 に答える
1
btn.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View v) {
    // ...
    EditText txt_username = (EditText) findViewByID(R.id.txt_username);
    //...
  }
}

これは「匿名の内部クラス」(タイプView.OnClickListener) です。findViewById()-method はActivity、現在のスコープではない -classからのものです。これを使って:

Activity2.this.findViewById(R.id.txt_username);

これにより、外部クラス ( Activity) のコンテキストが取得され、そのインスタンス メソッドを使用できるようになります。

于 2013-07-01T09:09:51.290 に答える