2012-02-07 3 views
1

私は以下のコードを持っており、私のシークバーはヌルポイントの例外によってクラッシュしています。 私の最後の質問Why is my dialog seekbar crashing私は私の問題を解決するための情報を見つけることができませんでした。SeekBarがNullpointer Exceptionをクラッシュさせています。

ここでコード:

dialog_context_mark_edit:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/edit_mark_dialog" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" 
    android:padding="10dp" > 

    <TextView 
     android:id="@+id/TextView01" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Name" /> 

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

     <requestFocus /> 
    </EditText> 

    <TextView 
     android:id="@+id/lololol" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentTop="true"/> 

    <SeekBar 
     android:id="@+id/seek_edit_gewicht" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" /> 

    <TextView 
     android:id="@+id/TextView02" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Note" /> 

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

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Datum" /> 

    <DatePicker 
     android:id="@+id/date_maturity_mark_edit" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="15dip" 
     android:orientation="horizontal" > 

     <Button 
      android:id="@+id/cmd_save_mark" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Updaten" /> 

     <Button 
      android:id="@+id/cmd_close_mark" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@string/close" /> 
    </LinearLayout> 

</LinearLayout> 

クラスマーク:

SeekBar seekBar_wertung, seek_edit_gewicht, seek_gewicht, seek_gewichtt; 
TextView gewicht, gewicht_test; 

OnSeekBarChangeListener yourSeekBarListener = new OnSeekBarChangeListener() { 

public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) { 
    // TODO Auto-generated method stub 

    // change progress text label with current seekbar value 
    gewicht_test.setText(progress+"%"); 
    // change action text label to changing 
} 

public void onStartTrackingTouch(SeekBar seekBar) { 
} 

public void onStopTrackingTouch(SeekBar seekBar) { 
    seekBar.setSecondaryProgress(seekBar.getProgress()); 
} 

}; 

ダイアログ:

@Override 
protected Dialog onCreateDialog(int id) { 
Dialog dialog = null;; 
    switch(id) { 
    case ADD_MARK_DIALOG: 
    dialog = new Dialog(mark.this); 

    dialog.setContentView(R.layout.dialog_context_mark); 
    dialog.setTitle("Note hinzufügen"); 

    insert_markname = (EditText)dialog.findViewById(R.id.insert_markname); 
    insert_note = (EditText)dialog.findViewById(R.id.insert_mark); 
    cmd_add_mark = (Button)dialog.findViewById(R.id.cmd_add_mark); 
    cmd_close_popup = (Button)dialog.findViewById(R.id.cmd_close_popup); 
    date_pick = (DatePicker)dialog.findViewById(R.id.date_maturity_mark); 
    seek_gewicht = (SeekBar)dialog.findViewById(R.id.seekBar_wertung); 
    seek_gewicht.setOnSeekBarChangeListener(yourSeekBarListener); 

    gewicht = (TextView)dialog.findViewById(R.id.txt_weight_change); 
    cmd_add_mark.setOnClickListener(add_mark); 
    cmd_close_popup.setOnClickListener(close_popup); 


     break; 
    case EDIT_MARK_DIALOG:  
     dialog = new Dialog(mark.this); 

     dialog.setContentView(R.layout.dialog_context_hw_edit); 
     dialog.setTitle("Note bearbeiten"); 

     edit_mark_name = (EditText)dialog.findViewById(R.id.edit_mark_name); 
     edit_mark_mark = (EditText)dialog.findViewById(R.id.edit_mark_note); 
     cmd_save_mark = (Button)dialog.findViewById(R.id.cmd_save_mark); 
     cmd_close_mark = (Button)dialog.findViewById(R.id.cmd_close_mark); 
     date_pick_edit = (DatePicker)dialog.findViewById(R.id.date_maturity_mark_edit); 
     seek_gewichtt = (SeekBar)dialog.findViewById(R.id.seek_edit_gewicht); 
     seek_gewichtt.setOnSeekBarChangeListener(yourSeekBarListener); 


     edit_mark_name.setText(name); 
     edit_mark_mark.setText(mark); 
     seek_gewichtt.setProgress(gewicht_mark_int); 

     gewicht_test = (TextView)dialog.findViewById(R.id.lololol); 
     cmd_save_mark.setOnClickListener(save_mark); 
     cmd_close_mark.setOnClickListener(close_popup_mark); 

      break; 
    } 

    return dialog; 
} 

LogCat:ライン339はseek_gewichtt.setOnSeekBaですrChangeListener(yourSeekBarListener);

02-07 14:52:15.718: D/dalvikvm(11876): GC_EXTERNAL_ALLOC freed 51K, 50% free 2695K/5379K, external 0K/0K, paused 33ms 
02-07 14:52:15.761: D/dalvikvm(11876): GC_EXTERNAL_ALLOC freed 4K, 50% free 2698K/5379K, external 13K/523K, paused 32ms 
02-07 14:52:20.097: D/dalvikvm(11876): GC_EXTERNAL_ALLOC freed 81K, 47% free 2891K/5447K, external 4220K/4230K, paused 19ms 
02-07 14:52:20.113: D/AndroidRuntime(11876): Shutting down VM 
02-07 14:52:20.117: W/dalvikvm(11876): threadid=1: thread exiting with uncaught exception (group=0x40235568) 
02-07 14:52:20.121: E/AndroidRuntime(11876): FATAL EXCEPTION: main 
02-07 14:52:20.121: E/AndroidRuntime(11876): java.lang.NullPointerException 
02-07 14:52:20.121: E/AndroidRuntime(11876): at test.marco.notenha.mark.onCreateDialog(mark.java:339) 
02-07 14:52:20.121: E/AndroidRuntime(11876): at android.app.Activity.onCreateDialog(Activity.java:2506) 
02-07 14:52:20.121: E/AndroidRuntime(11876): at android.app.Activity.createDialog(Activity.java:885) 
02-07 14:52:20.121: E/AndroidRuntime(11876): at android.app.Activity.showDialog(Activity.java:2581) 
02-07 14:52:20.121: E/AndroidRuntime(11876): at android.app.Activity.showDialog(Activity.java:2548) 
02-07 14:52:20.121: E/AndroidRuntime(11876): at test.marco.notenha.mark.onContextItemSelected(mark.java:255) 
02-07 14:52:20.121: E/AndroidRuntime(11876): at android.app.Activity.onMenuItemSelected(Activity.java:2233) 
02-07 14:52:20.121: E/AndroidRuntime(11876): at com.android.internal.policy.impl.PhoneWindow$ContextMenuCallback.onMenuItemSelected(PhoneWindow.java:2888) 
02-07 14:52:20.121: E/AndroidRuntime(11876): at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:143) 
02-07 14:52:20.121: E/AndroidRuntime(11876): at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:857) 
02-07 14:52:20.121: E/AndroidRuntime(11876): at com.android.internal.view.menu.MenuDialogHelper.onClick(MenuDialogHelper.java:138) 
02-07 14:52:20.121: E/AndroidRuntime(11876): at com.android.internal.app.AlertController$AlertParams$5.onItemClick(AlertController.java:928) 
02-07 14:52:20.121: E/AndroidRuntime(11876): at android.widget.AdapterView.performItemClick(AdapterView.java:284) 
02-07 14:52:20.121: E/AndroidRuntime(11876): at android.widget.ListView.performItemClick(ListView.java:3535) 
02-07 14:52:20.121: E/AndroidRuntime(11876): at android.widget.AbsListView$PerformClick.run(AbsListView.java:1827) 
02-07 14:52:20.121: E/AndroidRuntime(11876): at android.os.Handler.handleCallback(Handler.java:587) 
02-07 14:52:20.121: E/AndroidRuntime(11876): at android.os.Handler.dispatchMessage(Handler.java:92) 
02-07 14:52:20.121: E/AndroidRuntime(11876): at android.os.Looper.loop(Looper.java:130) 
02-07 14:52:20.121: E/AndroidRuntime(11876): at android.app.ActivityThread.main(ActivityThread.java:3703) 
02-07 14:52:20.121: E/AndroidRuntime(11876): at java.lang.reflect.Method.invokeNative(Native Method) 
02-07 14:52:20.121: E/AndroidRuntime(11876): at java.lang.reflect.Method.invoke(Method.java:507) 
02-07 14:52:20.121: E/AndroidRuntime(11876): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) 
02-07 14:52:20.121: E/AndroidRuntime(11876): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599) 
02-07 14:52:20.121: E/AndroidRuntime(11876): at dalvik.system.NativeStart.main(Native Method) 
02-07 14:52:21.484: I/Process(11876): Sending signal. PID: 11876 SIG: 9 

答えて

1

SeekBarに間違ったIDを使用しています。 XMLではseek_edit_gewichtと定義されていますが、R.id.seekBar_wertungを探しています。試してみてください:

seek_gewicht = (SeekBar)dialog.findViewById(R.id.seek_edit_gewicht); 
+0

私はまだseek_gewicht =(SeekBar)を持っています。dialog.findViewById(R.id.seek_edit_gewicht); 私のダイアログの2番目のケースを見て;)最初のものが動作しています。しかし第2のものではない。ありがとう –

+1

あなたは2番目ではなく、最初のケースでXMLを投稿しました。 2番目の問題が問題の場合は、R.layout.dialog_context_hw_editのXMLを投稿してください。 –

+0

くそー...それが私の問題を解決しました... R.layout.dialog_context_hw_editはR.layout.dialog_context_mark_editでなければなりません。ありがとう! –

1

私は何かを理解できませんでした。 dialog_context_mark_editファイルで定義されているレイアウトを表示します。

しかし、ダイアログではR.layout.dialog_context_markR.layout.dialog_context_hw_editを使用します。ファイルdialog_context_markとdialog_context_hw_editを提供できますか?そして、マーククラスコード全体を挿入することはできますか?

+0

Brian Dupuisからの私の最後のコメントを見てください '答え;)しかし、ありがとう! –

関連する問題