web-dev-qa-db-fra.com

La classe doit être déclarée abstraite ou implémenter une erreur de méthode abstraite

C'est mon code qui est supposé changer du texte en appuyant sur un bouton: -

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!");
            }
        });

    }}

Le View.OnClickListener est souligné et me donne l'erreur "La classe doit être déclarée abstraite ou implémenter une méthode abstraite". Ce code a été en grande partie copié à partir d’Internet et est supposé fonctionner correctement. Probablement c'est une erreur Android Studio seulement. Comment puis-je le faire fonctionner?

6
BrownMonkey300

View.OnClickListener doit implémenter la fonction onClick() sinon votre classe devrait être abstraite pour pouvoir implémenter votre fonction onClick() dans une classe enfant Mais dans votre cas, vous avez commis une faute d’orthographe. Ce devrait être onClick() au lieu de Onclick();

14
Usman

Vous avez mal nommé le nom de la méthode:

public void Onclick(View paramView)

devrait être

public void onClick(View paramView)

Suivre les conventions de dénomination Java peut vous aider.

7
Eran

Astuces: ajoutez @Override ci-dessus onClick(View). Sans @Override, l'avertissement signifie que vous n'avez pas implémenté onClickListener.

1
SilentKnight