2016-09-02 2 views
-4

Wenn ich dieses Programm ausführen, es immer wieder sagen, dass "nicht lösen können, setOnClickListener" .animal bitte helfen Sie mir, dieses Problem zu lösen.kann nicht lösen Symbol SetOnClickListener in Android

import android.support.v7.app.AppCompatActivity; 

import android.content.Intent; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.TextView; 

public class MainActivity extends AppCompatActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    // Set the content of the activity to use the activity_main.xml layout file 
    setContentView(R.layout.activity_main); 
} 
// Find the View that shows the numbers category 
TextView numbers = (TextView) findViewById(R.id.numbers); 

// Set a click listener on that View 
numbers.setOnClickListener(new View.OnClickListener() { 
    // The code in this method will be executed when the numbers View is clicked on. 
    @Override 
    public void onClick(View view) { 
     Intent numbersIntent = new Intent(MainActivity.this, Numbers.class); 
     startActivity(numbersIntent); 
    } 
} 

}

+4

verschieben Dein Code ins ide 'onCreate()'. – earthw0rmjim

+0

Ja, oder implementieren Sie 'OnClickListener' und' numbers.setOnClickListener (this); ' – Amg91

Antwort

2

Der Code sollte in der onCreate Methode sein, versuchen Sie:

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     // Set the content of the activity to use the activity_main.xml layout file 
     setContentView(R.layout.activity_main); 

    // Find the View that shows the numbers category 
    TextView numbers = (TextView) findViewById(R.id.numbers); 

     // Set a click listener on that View 
     numbers.setOnClickListener(new View.OnClickListener() { 
     // The code in this method will be executed when the numbers View is clicked on. 

     @Override 
     public void onClick(View view) { 
      Intent numbersIntent = new Intent(MainActivity.this, Numbers.class); 
      startActivity(numbersIntent); 
     } 
    } 
} 

Lesen Sie mehr über Aktivitäten und ihres Lebenszyklus: Activity Lifecycle

+0

Auch haben Sie eine Null-Zeiger-Ausnahme in onClick-Methode.Helfen Sie mir, um das loszuwerden. –

1

Ihre OnClickListener muss in Ihrem onCreate Methode.

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     // Set the content of the activity to use the activity_main.xml layout file 
     setContentView(R.layout.activity_main); 
     // Find the View that shows the numbers category 
     TextView numbers = (TextView) findViewById(R.id.numbers); 

     // Set a click listener on that View 
     numbers.setOnClickListener(new View.OnClickListener() { 
     // The code in this method will be executed when the numbers View is clicked on. 
      @Override 
      public void onClick(View view) { 
       Intent numbersIntent = new Intent(MainActivity.this, Numbers.class); 
       startActivity(numbersIntent); 
      } 
    }); 
    } 
} 

Das sollte den Fehler beheben. Stellen Sie außerdem sicher, dass Sie Numbers.class in Ihrem AndroidManifest hinzugefügt haben, andernfalls erhalten Sie einen weiteren Fehler, wenn Sie die Absicht starten.

<activity 
     android:name=".Numbers" 
     android:label="Numbers"/> 
+0

Warum erstellt es eine Nullzeigerausnahme für die Methode" numers.setOnClickListener (......) "? –

+0

Ist die Textansicht "Nummern" in activity_main.xml? – LBJ33

+0

Ja, es ist in activity_main.xml –

0
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    // Set the content of the activity to use the activity_main.xml layout file 
    setContentView(R.layout.activity_main); 

    // Find the View that shows the numbers category 
    TextView numbers = (TextView) findViewById(R.id.numbers); 

    // Set a click listener on that View 
    numbers.setOnClickListener(new View.OnClickListener() { 
    // The code in this method will be executed when the numbers View is clicked on. 

    @Override 
    public void onClick(View view) { 
     Intent numbersIntent = new Intent(MainActivity.this, Numbers.class); 
     startActivity(numbersIntent); 
    } 
} 

oder:

public class MainActivity extends AppCompatActivity implements OnClickListener{ 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     // Set the content of the activity to use the activity_main.xml layout file 
     setContentView(R.layout.activity_main); 

     // Find the View that shows the numbers category 
     TextView numbers = (TextView) findViewById(R.id.numbers); 

     // Set a click listener on that View 
     numbers.setOnClickListener(this); 
    } 

    @Override 
    public void onClick(View view) { 
     Intent numbersIntent = new Intent(MainActivity.this, Numbers.class); 
     startActivity(numbersIntent); 
    } 
} 
Verwandte Themen