2012-01-08 11 views
0

下のコードでEditText値を取得しようとしています。このアクティビティは、2つの文字列を追加するために使用されます。レイアウトでは、私はすでにonSaveとonCancelメソッドを入れました。しかし、onSaveにリンクされたボタンを押すと、nullポインタ例外エラーが表示されます。編集テキスト値を取得するときのヌルポインタ例外

活動:

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.EditText; 

public class AddTimeActivity extends Activity { 

public void onCreate(Bundle savedInstanceState){ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.time_item); 
} 

public void onCancel(View view){ 
    this.setResult(RESULT_CANCELED); 
    finish(); 
} 

public void onSave(View view){ 
    Intent intent = getIntent(); 

    EditText timeView = (EditText)view.findViewById(R.id.time_view); 
    String time = timeView.getText().toString(); 
    intent.putExtra(TimeTrackerActivity.TIME_KEY, time); 

    EditText notesView = (EditText)view.findViewById(R.id.notes_view); 
    String notes = notesView.getText().toString(); 
    intent.putExtra(TimeTrackerActivity.NOTES_KEY, notes); 

    this.setResult(RESULT_OK, intent); 

    finish(); 

} 
} 

レイアウト:デバッガ

E/AndroidRuntime(1123): Caused by: java.lang.NullPointerException 
E/AndroidRuntime(1123): at com.timetracker.AddTimeActivity.onSave(AddTimeActivity.java:34) 

から

... 
<EditText 
    android:id="@+id/timeView" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" > 
</EditText> 

<EditText 
    android:id="@+id/notes_view" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:inputType="textMultiLine" 
    android:gravity="top" 
    android:layout_weight="1" 
    android:layout_marginBottom="10dp"/> 
... 
<Button 
     android:onClick="onSave" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Save" /> 

<Button 
     android:onClick="onCancel" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Cancel" /> 
... 

エラーメッセージは、私は、デバッガを通じてチェックし、タイムビューの価値しようとしましたが、それはnullです。

誰かが助けてくれますか?

答えて

3

ID time_view(findViewById(R.id.time_view))を探していますが、XMLにID timeViewandroid:id="@+id/timeView")を宣言しています。それらを同じにして、それを修正する必要があります。

また、ビューでそれを呼び出すことではなくすべき活動について、例えば:

EditText timeView = (EditText)findViewById(R.id.time_view); 
+0

お返事ありがとうございます。どのように私はそれを見ていない来た:) – Brahmasta

+0

はい私の時間をここに保存するために1票... –

2

あなたのxmlがある

android:id="@+id/timeView" 

しかし、あなたのコードは

EditText timeView = (EditText)view.findViewById(R.id.time_view); 

を持っています上の行をに変更してください。

EditText timeView = (EditText)view.findViewById(R.id.timeView); 
+0

あなたの答えをありがとう! – Brahmasta

関連する問題