андроид вставить строку - PullRequest
       1

андроид вставить строку

0 голосов
/ 14 сентября 2011

с моей деятельностью Я отображаю форму, подобную этой:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView android:id="@+id/textView1" android:layout_height="wrap_content"
    android:layout_width="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge"
    android:text="@string/add_series" android:layout_gravity="center_horizontal"></TextView>
<EditText android:layout_height="wrap_content"
    android:layout_width="match_parent" android:id="@+id/series_name">
    <requestFocus></requestFocus>
</EditText>
<Button android:layout_height="wrap_content" android:id="@+id/button_save"
    android:layout_width="match_parent" android:text="@string/save"></Button>
</LinearLayout>

У меня также есть метод для получения этого значения.

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

    final wecDatabasesManager databaseHelper = new wecDatabasesManager(this);

    final Button button_save = (Button) findViewById(R.id.button_save);
    button_save.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            final EditText series_name = (EditText) findViewById(R.id.series_name);  
            String name = series_name.getText().toString();

            databaseHelper.addSeries(null, name, 2);
        }
    });
}

В моем классе DatabasesManager у меня есть этот метод.

public void addSeries(SQLiteDatabase db, String name, int publisher_id)
{
    ContentValues v = new ContentValues();
    v.put(wecSeriesTable.NAME, name);
    v.put(wecSeriesTable.PUBLISHER_ID, publisher_id);
    db.insert(wecSeriesTable.TABLE_NAME, null, v);
}

Но когда я пытаюсь сохранить значение формы, у меня появляется эта ошибка:

09-13 22:16:57.751: WARN/dalvikvm(2811): threadid=1: thread exiting with uncaught exception (group=0x40015560)
09-13 22:16:57.761: ERROR/AndroidRuntime(2811): FATAL EXCEPTION: main
09-13 22:16:57.761: ERROR/AndroidRuntime(2811): java.lang.NullPointerException
09-13 22:16:57.761: ERROR/AndroidRuntime(2811):     at zepod.whatelsecomics.databases.wecDatabasesManager.addSeries(wecDatabasesManager.java:102)
09-13 22:16:57.761: ERROR/AndroidRuntime(2811):     at zepod.whatelsecomics.wecSeriesAddActivity$1.onClick(wecSeriesAddActivity.java:25)
09-13 22:16:57.761: ERROR/AndroidRuntime(2811):     at android.view.View.performClick(View.java:2485)
09-13 22:16:57.761: ERROR/AndroidRuntime(2811):     at android.view.View$PerformClick.run(View.java:9080)
09-13 22:16:57.761: ERROR/AndroidRuntime(2811):     at android.os.Handler.handleCallback(Handler.java:587)
09-13 22:16:57.761: ERROR/AndroidRuntime(2811):     at android.os.Handler.dispatchMessage(Handler.java:92)
09-13 22:16:57.761: ERROR/AndroidRuntime(2811):     at android.os.Looper.loop(Looper.java:123)
09-13 22:16:57.761: ERROR/AndroidRuntime(2811):     at android.app.ActivityThread.main(ActivityThread.java:3647)
09-13 22:16:57.761: ERROR/AndroidRuntime(2811):     at java.lang.reflect.Method.invokeNative(Native Method)
09-13 22:16:57.761: ERROR/AndroidRuntime(2811):     at java.lang.reflect.Method.invoke(Method.java:507)
09-13 22:16:57.761: ERROR/AndroidRuntime(2811):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
09-13 22:16:57.761: ERROR/AndroidRuntime(2811):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
09-13 22:16:57.761: ERROR/AndroidRuntime(2811):     at dalvik.system.NativeStart.main(Native Method)
09-13 22:16:57.781: WARN/ActivityManager(68):   Force finishing activity zepod.whatelsecomics/.wecSeriesAddActivity
09-13 22:16:58.321: WARN/ActivityManager(68): Activity pause timeout for HistoryRecord{4076bc68 zepod.whatelsecomics/.wecSeriesAddActivity}

Почему?Кто-нибудь может мне помочь?

Я только что обновил код.

1 Ответ

1 голос
/ 14 сентября 2011

Это важная информация с вашего StackTrace:

09-13 22:16:57.761: ERROR/AndroidRuntime(2811): java.lang.NullPointerException

09-13 22:16:57.761: ERROR/AndroidRuntime(2811):     at zepod.whatelsecomics.databases.wecDatabasesManager.addSeries(wecDatabasesManager.java:102)

К какому-либо объекту (объектам), к которому вы обращаетесь в строке 102 в методе addSeries wecDatabasesManager, потенциально может быть присвоено значение null. Опубликуйте код метода addSeries, если вы не можете быстро его выяснить

EDIT

Вы передаете ноль в addSeries, где он ожидает экземпляр SqliteDatabase

databaseHelper.addSeries(null, name, 2);

и затем:

public void addSeries(SQLiteDatabase db, String name, int publisher_id)
{
    ...
    db.insert(wecSeriesTable.TABLE_NAME, null, v);
}

дБ ноль

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...