2016-03-20 15 views
0

私はアンドロイドに新しく、ストップウォッチを作成しようとしていますが、私のコードで何が間違っているのか分かりません。私は、これはエラー - 取得していますjava.lang.NullPointerException:仮想メソッドを呼び出そうとしました 'void android.widget.Button.setOnClickListener

のjava.lang.NullPointerException:nullのオブジェクト参照に '無効android.widget.Button.setOnClickListener(android.view.View $ OnClickListener)' 仮想メソッドを呼び出そうと

助けてください。

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; 
} 
} 

XMLファイルであなたのボタンにIDを与えられていない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

のようなあなたのbuttonタグをlayout.Change。 –

答えて

0

あなたのボタンはID、あなたのフラグメント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="" 
    /> 

新しいandroid:idプロパティに注意してください。あなたは、ボタンのXMLにボタンIDを割り当てていない

+0

が働いた!ありがとう..もう1つ質問..どのように秒を表示するには、クロノメーターを取得するのですか? – PersianBlue

+0

これはスタックオーバフローでも質問することができる別の質問のように聞こえます。 –

1

。次のようにXMLを更新します。

<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

は、あなたがあなたの答えを見てOPを伝えるためにコメントする必要はありません@ParsaniaHardikこの

<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="" 

    /> 
関連する問題

 関連する問題