2016-03-20 13 views
0

Ich bin neu bei Android und ich versuche, eine Stoppuhr zu machen, aber weiß nicht was falsch ist mit meinem Code. Ich erhalte diese fehler-java.lang.NullPointerException: Versuch, virtuelle Methode 'void android.widget.Button.setOnClickListener aufzurufen

java.lang.NullPointerException: Der Versuch, auf ein Null-Objekt Referenz

virtuelle Methode 'Leere android.widget.Button.setOnClickListener (android.view.View $ OnClickListener)' aufzurufen

Bitte helfen.

StudyTimeFragment.java

package com.studypal.khadija.studypal; 

import android.app.Fragment; 
import android.os.Bundle; 
import android.os.SystemClock; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.Button; 
import android.widget.Chronometer; 

public class StudyTimeFragment extends Fragment { 

public Button startbutton; 
public Chronometer studywatch; 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 

    View rootView = inflater.inflate(R.layout.fragment_studytime, container, false); 

    startbutton=(Button)rootView.findViewById(R.id.button); 
    studywatch = (Chronometer)rootView.findViewById(R.id.chronometer); 
    startbutton.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      // Perform action on click 
      studywatch.setBase(SystemClock.elapsedRealtime()); 
      studywatch.start(); 
      return; 
     } 
    }); 
    return rootView; 
} 
} 

fragment_studytime.xml

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" android:layout_height="match_parent"> 

<Chronometer 
    android:layout_width="88dp" 
    android:layout_height="91dp" 
    android:id="@+id/chronometer" 
    android:layout_gravity="top|center" 
    android:layout_marginTop="175dp" 
    android:width="150dp" 
    android:height="150dp" 
    android:textSize="70dp" /> 

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="300dp" 
    android:layout_gravity="top|center" 
    android:text="Start" 
    android:clickable="true" 
    android:onClick="" 
    /> 

</FrameLayout> 
+0

@ParsaniaHardik Sie brauchen nicht zu kommentieren die OP zu sagen, auf Ihre Antwort zu suchen. –

Antwort

0

Es sieht aus wie Ihre Schaltfläche, um eine ID benötigt, die gleiche, die Sie suchen in Ihrem Fragment onCreateView.

<Button 
    android:id="@+id/button" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="300dp" 
    android:layout_gravity="top|center" 
    android:text="Start" 
    android:clickable="true" 
    android:onClick="" 
    /> 

Beachten Sie die neue Eigenschaft android: id.

+0

hat funktioniert !! danke .. noch eine frage .. wie bekomme ich chronometer um sekunden zu zeigen? – PersianBlue

+0

Das klingt nach einer anderen Frage, die Sie auch bei Stack Overflow stellen könnten. –

1

Sie haben keine ID auf Ihre Schaltfläche in XML-Datei angegeben. Aktualisieren Sie Ihre xml wie folgt:

<Button 
    android:id="@+id/button" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="300dp" 
    android:layout_gravity="top|center" 
    android:text="Start" 
    android:clickable="true" 
    android:onClick="" 

    /> 
0

Sie haben keine Taste ID Ihre Schaltfläche xml zugewiesen layout.Change Ihre Schaltfläche Tag wie diesem

<Button 
    android:id="@+id/button" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="300dp" 
    android:layout_gravity="top|center" 
    android:text="Start" 
    android:clickable="true" 
    android:onClick="" 

    /> 
Verwandte Themen