2016-08-04 16 views
-2

Hauptaktivität Aufruf Dies sind die CodesLösung virtuelle Methode auf ein Null-Objekt Referenz

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TextView; 

public class FunfactMainActivity extends AppCompatActivity { 
    // Declare our view variables 
    private TextView mFactTextView; 
    private Button mShowFactButton; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_funfact_main); 

     //Assign the views from the layout file to the corresponding variables 

     mFactTextView= (TextView) findViewById(R.id.factTextView); 
     mShowFactButton= (Button) findViewById(R.id.showFactButton); 

     View.OnClickListener listener = new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       // The button was clicked, so update the fact TextView with a new fact 

       String fact = "Ostriches can run faster than horses"; 
       mFactTextView.setText(fact); 
      } 
     }; 
     mShowFactButton.setOnClickListener(listener); 
    } 
} 

main.xml Dies sind die Codes

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.example.oluwatomisinekpek.funfacts.FunfactMainActivity" 
    android:background="@android:color/holo_green_dark"> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Did you know?" 
     android:id="@+id/textView2" 
     android:textSize="20sp" 
     android:textColor="#80ffffff" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:text="Ants stretch when they wake up in the morning." 
     android:id="@+id/textView" 
     android:layout_below="@+id/textView2" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="150dp" 
     android:textSize="24sp" 
     android:textColor="@android:color/white" /> 

    <Button 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="Next Fun Fact" 
     android:id="@+id/Funfactbutton" 
     android:layout_alignParentBottom="true" 
     android:layout_centerHorizontal="true" 
     android:background="@android:color/white" /> 

</RelativeLayout> 

Logcat

Dies sind die Fehlerberichte

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference 

Ich bin ein neuer Anfänger der Android-Entwicklung. Bisher kenne ich die Grundlagen und lerne, wie man eine App debuggt. Ich habe den Absturz gefunden, weiß aber nicht, wie ich vorgehen soll.

+2

Ihre Taste' Funfactbutton', aber finden es mit '' showFactButton – Kathi

Antwort

1

Sie haben keine Taste mit ID showFactButton. Ändern Sie den Code mShowFactButton dazu:

mShowFactButton= (Button) findViewById(R.id.Funfactbutton); 

`