web-dev-qa-db-ja.com

クラスは抽象として宣言するか、抽象メソッドエラーを実装する必要があります

これはボタンを押すといくつかのテキストを変更することを想定している私のコードです:-

public class MyActivity extends ActionBarActivity {
    TextView txtview;
    Button butto;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my);
        ImageView imageView = (ImageView) findViewById(R.id.image);
        txtview = (TextView) findViewById(R.id.text);
        butto = (Button) findViewById(R.id.buttn);

        butto.setOnClickListener(new View.OnClickListener() {

                public void Onclick(View paramView) {
                txtview.setText("You Clicked it!");
            }
        });

    }}

View.OnClickListenerに下線が引かれ、「クラスは抽象として宣言するか、抽象メソッドを実装する必要があります」というエラーが表示されます。このコードは、主にインターネットからコピーされており、正常に動作すると思われます。おそらくそのAndroid Studioエラーのみ。どのように動作させることができますか?

7
BrownMonkey300

_View.OnClickListener_は、関数onClick()を実装する必要があります。そうでなければ、クラスは抽象である必要があります。そのため、子クラスでonClick()関数を実装できます。しかし、あなたの場合、あなたはスペルミスをしました。 onClick()ではなくOnclick()である必要があります。

16
Usman

メソッド名が間違っています:

public void Onclick(View paramView)

あるべき

public void onClick(View paramView)

次のJava命名規則が役立ちます。

7
Eran

トリック:onClick(View)の上に@Overrideを追加します。 @Overrideがない場合、警告はonClickListenerを実装しなかったことを意味します。

1
SilentKnight