SeekBar вылетает исключение Nullpointer. - PullRequest
1 голос
/ 07 февраля 2012

У меня есть следующие коды, и моя панель поиска падает из-за исключения с нулевой точкой. В моем последнем вопросе Почему происходит сбой в панели поиска моего диалогового окна Я не смог найти информацию для решения моей проблемы.

Вот коды:

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.setOnSeekBarChangeListener (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

Ответы [ 2 ]

1 голос
/ 07 февраля 2012

Я что-то не понял.Вы показываете макет, определенный в файле dialog_context_mark_edit.

Но в своих диалогах вы используете R.layout.dialog_context_mark и R.layout.dialog_context_hw_edit.Можете ли вы предоставить нам файлы dialog_context_mark и dialog_context_hw_edit?И вы можете вставить весь код класса марки?

1 голос
/ 07 февраля 2012

Вы используете неправильный идентификатор для вашего SeekBar. В вашем XML он определен как seek_edit_gewicht, но вы ищете R.id.seekBar_wertung. Попробуйте это:

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