2012-03-31 5 views
0

hier ist mein großes Problem:Schnittstelle OnClickListener kann meine OnClick-Methode nicht verwenden?

http://www.bilder-space.de/show_img.php?img=7371f3-1333218887.jpg&size=original

und der Code:

package org.madmax.sudoku; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 

public class SudokuActivity extends Activity implements OnClickListener { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     //Set up Click Listener for all Buttons 
     View continueButton = findViewById(R.id.continue_button); 
     continueButton.setOnClickListener(this); 
     View newButton = findViewById(R.id.new_button); 
     newButton.setOnClickListener(this); 

     public void onClick(View v) { 
      switch(v.getId()) { 
      case R.id.about_button: 
       Intent i = new Intent(this, About.class); 
       startActivity(i); 
       break; 
      } 
     } 

    } 
} 

Der Fehler ist:

-void is an invalid type for the variable onCLick() 

Warum diese Fehler geben Sie mir nicht Eclipse?

Antwort

2

Sie müssen onClick aus onCreate Methode zu bringen. Verschachtelte Methodendeklarationen sind in der Programmierung nicht erlaubt.

package org.madmax.sudoku; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 

public class SudokuActivity extends Activity implements OnClickListener { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     //Set up Click Listener for all Buttons 
     View continueButton = findViewById(R.id.continue_button); 
     continueButton.setOnClickListener(this); 
     View newButton = findViewById(R.id.new_button); 
     newButton.setOnClickListener(this); 
    } 

    public void onClick(View v) { 
     switch(v.getId()) { 
     case R.id.about_button: 
      Intent i = new Intent(this, About.class); 
      startActivity(i); 
      break; 
     } 
    } 
} 
0

Sie können keine Methode in einer anderen Methode in Java verwenden. Legen Sie die onClick()nachonCreate(), nicht innerhalb es.

0

Sie haben die Methode onClick innerhalb der Methode onCreate definiert.

3

Sie Onclick in Ihrem onCreate Methode wie folgt

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 



    Button newButton = findViewById(R.id.new_button); 
    newButton.setOnClickListener(new OnClickListener() { 

     public void onClick(View v) { 
      // your code here 

     } 
    }); 
} 
verwenden können
Verwandte Themen