2016-07-12 9 views
-1

Ich habe eine neue Aktivität in Android Studio erstellt - nennen Sie sie New_Name_2. Auf halbem Weg merke ich, dass der Name eine Benennungskonvention ist und möchte ihn zu Second_Activity umgestalten.Überall wo eine neue Aktivität referenziert wird

refactor Verwendung -> Umbenennen I umbenannt content_New_Name_2.xml, activity_New_Name_2.xml und New_Name_2.java

Der Name im Android Manifest geändert hat.

Allerdings, wenn ich die Onclick-Listener erhalte ich einen tödlichen Absturz:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.xx.Second_Activity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference 

Ich gehe davon aus ich einen Platz verpasst den Namen Refactoring. Wenn ich eine Grundaktivität mit Android Studio erstellen, in dem es neben verwiesen wird:

    Inhalt
  • xml
  • xml Aktivität
  • Klasse Java
  • Android Manifest

__ bearbeiten __ enthalten OnClickListener

btnSecond = (ImageView) findViewById(R.id.btnSecond); 
    btnSecond.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      startActivity(new Intent(getApplicationContext(), Second_Activity.class)); 
     } 
    }); 

Gelöst: Die Second_Activity-Klasse hatte einen Fehler in einem OnClickListener. Ich hatte etwas wie btn1 = (Button) findViewById (R.id. FALSCHE ID WAR HIER)

Vielen Dank!

+0

Ziemlich sicher, dass Ihre Aktivität in Ordnung ist, aber nicht Ihre onClickListener auf ein Null-Objekt. –

+0

bleiben Sie den Cursor auf den Namen und drücken Sie Shift + F6 und wenn Sie ändern, wird überall dort geändert, wo –

+0

In den onClickListener eingefügt. Nicht zu sehen, wie es null sein könnte, wenn ich nicht vermasselte, die Klasse zu refaktorieren – BR89

Antwort

1

Wenn gelesen ComponentInfo versuchen, eine Reinigung zu tun.

Gehen Sie zu Build>Clean Project und dann versuchen Sie, Ihre App zu starten.

EDIT (Good Practice)

Es ist eine gute Praxis, nach findViewById(), versuchen Sie, wenn die Ansicht (btnSecond in Ihrem Fall) zu überprüfen, nicht null ist.

btnSecond = (ImageView) findViewById(R.id.btnSecond); 
if (btnSecond != null) 
    btnSecond.setOnClickListener(new View.OnClickListener() { 
+0

Reinigung hat leider nicht funktioniert. Das Setzen eines! = Null-Tests bringt mich immer noch zum Absturz. Einstellung auf == null aus Neugier, kein Absturz, aber keine Funktion. – BR89

+0

Poste deinen ganzen Code bitte – eldivino87

Verwandte Themen