| |||||||
Das Thema "NullPointerException" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.
|
| | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Junior Mitglied Registriert seit: 30.12.2011
Beiträge: 43
Abgegebene Danke: 17
Erhielt 0 Danke für 0 Beiträge
| ich mal wieder. Einige kennen mich evtl aus den vorherigen Threads zu Problemen mit meiner App. Das neuste Problem tritt nun beim ändern eines Eintrags auf. Um Eine Änderung zu realisieren hole ich mir aus der Datenbank die betreffenden Daten. Nun möchte ich in meiner Eingabemaske die bisherigen Daten in die views laden. Meine Eingabe Maske sieht wie folgt aus: Spinner Spinner Spinner TextView: EditText TextView: EditText oder eben in XML: Code: <TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<!-- Datum -->
<TableRow>
<Spinner
android:id="@+id/aendern_datum_Tag"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:drawSelectorOnTop="true"
android:entries="@array/tag_anzeige"
android:entryValues="@array/tag_wert"
/>
<Spinner
android:id="@+id/aendern_datum_Monat"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawSelectorOnTop="true"
android:entries="@array/monat_anzeige"
android:entryValues="@array/monat_wert"
/>
<Spinner
android:id="@+id/aendern_datum_Jahr"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawSelectorOnTop="true"
android:entries="@array/jahr_anzeige"
android:entryValues="@array/jahr_wert"
/>
</TableRow>
<!-- Zweck -->
<TableRow>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Zweck:"
android:gravity="left"
android:maxWidth="15dp"/>
<EditText
android:id="@+id/aendern_zweck"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="text" >
<requestFocus />
</EditText>
</TableRow>
<!-- Betrag -->
<TableRow>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Betrag:"
/>
<EditText
android:id="@+id/aendern_betrag"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="number|numberSigned|numberDecimal"
/>
</TableRow>
<Button
android:id="@+id/button_aendern"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/buttontxt_aendern"
android:onClick="onClickEintragSpeichern"
/>
</TableLayout> Hier die Klasse: Code: package micka.haushaltsbuch;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.Spinner;
public class EintragAendernActivity extends Activity
{
final static String MY_DB_NAME = "FinanzenDB";
static String MY_DB_TABLE = "eintraege";
final static String tag="ensacom";
long id;
SQLiteDatabase myDB = null;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.eintraghinzufuegenlayout);
myDB = null;
final Bundle extras = getIntent().getExtras();
if(extras != null)
{
MY_DB_TABLE = extras.getString(EintraegeAnzeigenActivity.TABELLENNAME);
id = extras.getLong(EintraegeAnzeigenActivity.ID);
}
Eintrag eintrag = null;
myDB = this.openOrCreateDatabase(MY_DB_NAME, MODE_PRIVATE, null);
Cursor eintragCursor = myDB.rawQuery("SELECT _id, day, month, year, wofuer, betrag FROM " + MY_DB_TABLE + " WHERE _id=" + id + " Order By day, month, year", null);
eintragCursor.moveToFirst();
if(eintragCursor.moveToFirst())
{
eintrag = null;
eintrag = new Eintrag(eintragCursor.getInt(0),eintragCursor.getInt(1),eintragCursor.getInt(2),eintragCursor.getInt(3),eintragCursor.getString(4),eintragCursor.getDouble(5));
}
eintragCursor.close();
myDB.close();
if(eintrag != null)
{
Log.v(tag, "Vor Edit Eintrag: " + eintrag.day + "." +eintrag.month +"." + eintrag.year +", " + eintrag.wofuer + ", " + eintrag.betrag + ", id=" + eintrag._id);
Spinner day = (Spinner)findViewById(R.id.aendern_datum_Tag);
day.setSelection(eintrag.day); //Zeile 48(Siehe LogCat)
Spinner month = (Spinner)findViewById(R.id.aendern_datum_Monat);
month.setSelection(eintrag.month);
Spinner year = (Spinner)findViewById(R.id.aendern_datum_Jahr);
month.setSelection(eintrag.year);
EditText wofuer = (EditText)findViewById(R.id.aendern_zweck);
wofuer.setText(eintrag.wofuer);
EditText betrag = (EditText)findViewById(R.id.aendern_betrag);
wofuer.setText(String.valueOf(eintrag.betrag));
}
}
public void onClickEintragSpeichern(final View sfNormal)
{
...
}
} Code: 01-16 15:08:45.962: E/AndroidRuntime(389): FATAL EXCEPTION: main
01-16 15:08:45.962: E/AndroidRuntime(389): java.lang.RuntimeException: Unable to start activity ComponentInfo{micka.haushaltsbuch/micka.haushaltsbuch.EintragAendernActivity}: java.lang.NullPointerException
01-16 15:08:45.962: E/AndroidRuntime(389): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
01-16 15:08:45.962: E/AndroidRuntime(389): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
01-16 15:08:45.962: E/AndroidRuntime(389): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
01-16 15:08:45.962: E/AndroidRuntime(389): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
01-16 15:08:45.962: E/AndroidRuntime(389): at android.os.Handler.dispatchMessage(Handler.java:99)
01-16 15:08:45.962: E/AndroidRuntime(389): at android.os.Looper.loop(Looper.java:123)
01-16 15:08:45.962: E/AndroidRuntime(389): at android.app.ActivityThread.main(ActivityThread.java:4627)
01-16 15:08:45.962: E/AndroidRuntime(389): at java.lang.reflect.Method.invokeNative(Native Method)
01-16 15:08:45.962: E/AndroidRuntime(389): at java.lang.reflect.Method.invoke(Method.java:521)
01-16 15:08:45.962: E/AndroidRuntime(389): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
01-16 15:08:45.962: E/AndroidRuntime(389): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
01-16 15:08:45.962: E/AndroidRuntime(389): at dalvik.system.NativeStart.main(Native Method)
01-16 15:08:45.962: E/AndroidRuntime(389): Caused by: java.lang.NullPointerException
01-16 15:08:45.962: E/AndroidRuntime(389): at micka.haushaltsbuch.EintragAendernActivity.onCreate(EintragAendernActivity.java:48)
01-16 15:08:45.962: E/AndroidRuntime(389): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
01-16 15:08:45.962: E/AndroidRuntime(389): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
01-16 15:08:45.962: E/AndroidRuntime(389): ... 11 more Was mach ich hier falsch? |
| | |
| | #2 (permalink) | |
| Junior Mitglied Registriert seit: 30.12.2011
Beiträge: 43
Abgegebene Danke: 17
Erhielt 0 Danke für 0 Beiträge
|
Mir ist gerade aufgefallen das ich im onCreate ein falsches Layout angegeben habe. Dies habe ich dann eben korrigiert so dass setContentview auch wirklich das Layout bekommt, dass ich euch schon gepostet habe. Seit dieser kleinen Änderung sieht der LogCatOutPut wie folgt aus. Zitat:
| |
| | |
| | #3 (permalink) |
| Android Guru Modell: T-Mobile G1, Nexus One, Samsung Galaxy Tab 10.1, Samsung Galaxy Nexus Registriert seit: 04.05.2009
Beiträge: 1.599
Abgegebene Danke: 128
Erhielt 210 Danke für 193 Beiträge
|
Es wird auf einen Index des Arrays zugegriffen der nicht existiert. Also würde ich mal die Arrays die du in der XML angibst checken.
__________________ Follow/Add/Circle/Whatever me on Google+ Solitaire HD, ein Solitaire optimiert für Honeycomb. |
| | |
| Folgender Benutzer bedankt sich bei the_alien für diesen Beitrag: | Micka (17.01.2012) |
| | #4 (permalink) |
| Junior Mitglied Registriert seit: 30.12.2011
Beiträge: 43
Abgegebene Danke: 17
Erhielt 0 Danke für 0 Beiträge
|
Das im Layout verwendete Array ist das gleiche wie das fürs erstellen. Es existieren 31 Items. Sollte passen. Poste gleich mal die Arrays.xml wenn ich am Rechner bin.
|
| | |
| | #5 (permalink) |
| Junior Mitglied Registriert seit: 30.12.2011
Beiträge: 43
Abgegebene Danke: 17
Erhielt 0 Danke für 0 Beiträge
|
hier mal die Arrays.xml: Ich hänge mal das komplette Project an, vielleicht liegt der Fehler ja ganz woanders. Code: <?xml version="1.0" encoding="UTF-8"?>
<resources>
<array name="tag_anzeige">
<item>"01"</item>
<item>"02"</item>
<item>"03"</item>
<item>"04"</item>
<item>"05"</item>
<item>"06"</item>
<item>"07"</item>
<item>"08"</item>
<item>"09"</item>
<item>"10"</item>
<item>"11"</item>
<item>"12"</item>
<item>"13"</item>
<item>"14"</item>
<item>"15"</item>
<item>"16"</item>
<item>"17"</item>
<item>"18"</item>
<item>"19"</item>
<item>"20"</item>
<item>"21"</item>
<item>"22"</item>
<item>"23"</item>
<item>"24"</item>
<item>"25"</item>
<item>"26"</item>
<item>"27"</item>
<item>"28"</item>
<item>"29"</item>
<item>"30"</item>
<item>"31"</item>
</array>
<array name="tag_wert">
<item>01</item>
<item>02</item>
<item>03</item>
<item>04</item>
<item>05</item>
<item>06</item>
<item>07</item>
<item>08</item>
<item>09</item>
<item>10</item>
<item>11</item>
<item>12</item>
<item>13</item>
<item>14</item>
<item>15</item>
<item>16</item>
<item>17</item>
<item>18</item>
<item>19</item>
<item>20</item>
<item>21</item>
<item>22</item>
<item>23</item>
<item>24</item>
<item>25</item>
<item>26</item>
<item>27</item>
<item>28</item>
<item>29</item>
<item>30</item>
<item>31</item>
</array>
<array name="monat_anzeige">
<item>"01"</item>
<item>"02"</item>
<item>"03"</item>
<item>"04"</item>
<item>"05"</item>
<item>"06"</item>
<item>"07"</item>
<item>"08"</item>
<item>"09"</item>
<item>"10"</item>
<item>"11"</item>
<item>"12"</item>
</array>
<array name="monat_wert">
<item>01</item>
<item>02</item>
<item>03</item>
<item>04</item>
<item>05</item>
<item>06</item>
<item>07</item>
<item>08</item>
<item>09</item>
<item>10</item>
<item>11</item>
<item>12</item>
</array>
<array name="jahr_anzeige">
<item>"2011"</item>
<item>"2012"</item>
<item>"2013"</item>
<item>"2014"</item>
<item>"2015"</item>
<item>"2016"</item>
<item>"2017"</item>
<item>"2018"</item>
<item>"2019"</item>
<item>"2020"</item>
<item>"2021"</item>
<item>"2022"</item>
<item>"2023"</item>
<item>"2024"</item>
<item>"2025"</item>
<item>"2026"</item>
<item>"2027"</item>
<item>"2028"</item>
<item>"2029"</item>
<item>"2030"</item>
</array>
<array name="jahr_wert">
<item>2011</item>
<item>2012</item>
<item>2013</item>
<item>2014</item>
<item>2015</item>
<item>2016</item>
<item>2017</item>
<item>2018</item>
<item>2019</item>
<item>2020</item>
<item>2021</item>
<item>2022</item>
<item>2023</item>
<item>2024</item>
<item>2025</item>
<item>2026</item>
<item>2027</item>
<item>2028</item>
<item>2029</item>
<item>2030</item>
</array>
</resources> |
| | |
![]() |
|
| Themen-Optionen | |
| Ansicht | |
| |
| ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Spinner.setAdapter wirft NullPointerException | DavidD | Android App Entwicklung | 3 | 27.08.2011 14:56 |
| mein Spinner wirft NullPointerException... need help | rufux | Android App Entwicklung | 8 | 03.08.2011 12:26 |
| TabHost NullpointerException -> Button einfügen zu TabHost Example | Rotesmofa | Android App Entwicklung | 4 | 12.10.2010 14:11 |
| NullPointerException ApplicationInfo.name | FelixL | Android App Entwicklung | 1 | 29.08.2010 10:31 |
| NullPointerException bei ArrayAdapter | nithdi | Android App Entwicklung | 7 | 29.04.2010 22:58 |