2015-04-22 15 views
5

Questo è il mio codice che è supponiamo di modificare un testo su di premere il pulsante: -Classe deve o essere dichiarata astratta o implementare metodo astratto errore

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

    }} 

Il View.OnClickListener è sottolineato e mi dà l'errore "di classe deve o essere dichiarato astratto o implementare il metodo astratto ". Questo codice è stato per lo più copiato da Internet e suppone che stia funzionando bene. Probabilmente si tratta solo di un errore di Android Studio. Come posso farlo funzionare?

+0

dovrebbe essere '@Override public void onClick (View v) {}' –

risposta

9

View.OnClickListener deve implementare la funzione onClick() altrimenti la classe deve essere astratta, in modo da poter implementare la funzione onClick() in alcune classi figlio. Ma nel tuo caso hai commesso un errore di ortografia. Dovrebbe essere onClick() anziché Onclick();

7

avete ottenuto il nome del metodo sbagliato:

public void Onclick(View paramView) 

dovrebbe essere

public void onClick(View paramView) 

seguenti convenzioni di denominazione Java possono aiutare.

+0

Grazie! Ha funzionato! – BrownMonkey300

1

Trucchi: aggiungere @Override sopra onClick(View). Senza @Override, l'avviso indica che non hai implementato onClickListener.

+0

Come fare un astratto di classe interna annonoymous? –

+0

Scusa, cosa? Ho paura di non averlo capito. – SilentKnight

Problemi correlati