2015-04-22 9 views
5

To jest mój kod, który jest przypuszczać, aby zmienić tekst na naciśnięciu przycisku: -Klasa musi być albo uznany streszczenie lub zaimplementować metody abstrakcyjne błąd

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 podkreślono, a to daje mi błąd „klasa musi albo zostać uznane za abstrakcyjne, albo zastosować metodę abstrakcyjną ". Ten kod został przeważnie skopiowany z Internetu i wygląda na to, że działa dobrze. Prawdopodobnie jest to tylko błąd w Androidzie Studio. Jak mogę go uruchomić?

+0

Powinno to być '@Override public void onClick (View v) {}' –

Odpowiedz

9

View.OnClickListener musi implementować funkcję onClick() w przeciwnym razie klasa powinna być abstrakcyjna, aby można było zaimplementować swoją funkcję onClick() w niektórych klasach potomnych. Ale w twoim przypadku popełniłeś błąd w pisowni. Powinien być onClick() zamiast Onclick();

7

Masz nazwa metody źle:

public void Onclick(View paramView) 

powinny być

public void onClick(View paramView) 

następujących konwencji nazewnictwa Java może pomóc.

+0

Dzięki! Zadziałało! – BrownMonkey300

1

Sztuczki: dodaj @Override powyżej onClick(View). Bez @Override, ostrzeżenie oznacza, że ​​nie wdrożyłeś onClickListener.

+0

Jak zrobić annonoymous wewnętrzną klasę abstrakcyjną? –

+0

Przepraszam, co? Obawiam się, że go nie dostałem. – SilentKnight

Powiązane problemy