Gerade geprüft, also null sind sie beide nicht. Die Werte werden auch verrechnen aber beim Klick auf das Graben Item in der bauteileErdbau.java crasht es
Beiträge von DavidRei
-
-
Hallo,
folgendes Probelm. Ich bekomme während der Laufzeit meiner App eine NullPointerException. Und zwar immer dann wenn ich eine meiner ListViews mit einem String Array füllen will.08-18 16:43:40.789 11579-11579/com.seminararbeit.gewerke_app E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.seminararbeit.gewerke_app, PID: 11579
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference
at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:394)
at android.widget.ArrayAdapter.getView(ArrayAdapter.java:362)
at android.widget.AbsListView.obtainView(AbsListView.java:2842)
at android.widget.ListView.measureHeightOfChildren(ListView.java:1290)
at android.widget.ListView.onMeasure(ListView.java:1202)
at android.view.View.measure(View.java:18417)
at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:727)
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:463)
at android.view.View.measure(View.java:18417)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5801)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:430)
at android.support.v7.internal.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:124)
at android.view.View.measure(View.java:18417)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5801)
at android.support.v7.internal.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:444)
at android.view.View.measure(View.java:18417)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5801)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:430)
at android.view.View.measure(View.java:18417)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5801)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1835)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:725)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:616)
at android.view.View.measure(View.java:18417)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5801)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:430)
at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2881)
at android.view.View.measure(View.java:18417)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2237)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1295)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1537)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1180)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6558)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:777)
at android.view.Choreographer.doCallbacks(Choreographer.java:590)
at android.view.Choreographer.doFrame(Choreographer.java:560)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:763)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5832)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)Betreffende Klassen:
Java: MainActivity.java
Alles anzeigenpublic class MainActivity extends AppCompatActivity { Values values = new Values(); double erholungszeit; double verteilzeit; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button btnKalkulieren = (Button)findViewById(R.id.btnKalk); } public void onClick(View view){ EditText editVerteilzeit = (EditText)findViewById(R.id.etVerteilzeit); editVerteilzeit.getText(); verteilzeit = Double.parseDouble(editVerteilzeit.getText().toString()); values.setVerteilzeit(verteilzeit); EditText editErholungszeit = (EditText)findViewById(R.id.etErholungszeit); editErholungszeit.getText(); erholungszeit = Double.parseDouble(editErholungszeit.getText().toString()); values.setErholungszeit(erholungszeit); values.getAuftragsZeitGraben(); Intent intent = new Intent(this, Gewerke_Select.class); startActivity(intent); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } }
Java: LeistungenGraben
Alles anzeigenpublic class LeistungenGraben extends AppCompatActivity { Values values = new Values(); private ArrayAdapter arrayAdapter; private ListView leistungenGrabenList; private ListView auftragsZeitList; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_leistungen_graben); leistungenGrabenList = (ListView)findViewById(R.id.listViewLeistungenGraben); arrayAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, values.getLeistungenGraben()); Toast.makeText(LeistungenGraben.this, "TEST", Toast.LENGTH_SHORT).show(); leistungenGrabenList.setAdapter(arrayAdapter); auftragsZeitList = (ListView)findViewById(R.id.listViewAuftragszeit); arrayAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, values.getAuftragszeitGraben()); auftragsZeitList.setAdapter(arrayAdapter); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_leistungen_graben, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } }
Java: Values.java
Alles anzeigenpublic class Values { public double verteilzeit; public double erholungszeit; private String[] gewerke = {"Erdbau", "Stahlbeton"}; private String[] bauteileErdbau = {"Graben", "Baugrube"}; private String[] bauteileStahlbeton = {"Wand", "Decke", "Bewehrung"}; private String[] einheiten = {"m³","m²", "m³", "m³", "m³", "m²", "m²", "m³", "m²", "m²", "m²", "t", "t"}; private String[] leistungen = {"Graben ausheben", "Graben herstellen", "Graben verfüllen", "Baugrube ausheben", "Baugrube verfüllen", "Planum herstellen", "Wand schalen", "Wand betonieren", "Fertigteil liefern & montieren", "Decke schalen", "Decke betonieren", "Bewehrung liefern", "Bewehrung einbauen"}; public String[] leistungenGraben = {"Graben ausheben", "Graben herstellen", "Graben verfüllen"}; private Double[] grundzeiten = {0.5, 0.2, 0.352, 1.2, 0.5, 0.023, 2.53, 2.3, 0.362, 2.5, 4.5, 0.5, 9.5}; private Double[] grundzeitenGraben = {0.5, 0.2, 0.352}; private Double[] auftragszeit = new Double[13]; private Double[] auftragszeitGraben = new Double[3]; public Values(){ System.out.println("getGraben ausgeführt -----------------------------------------------------"); System.out.println(auftragszeitGraben[2] + " = " + grundzeitenGraben[2] + " / 100 " + " * " + verteilzeit + " + " + grundzeitenGraben[2] + " / 100"+ " * " + erholungszeit); } public String[] getLeistungenGraben() { return leistungenGraben; } public Double[] getAuftragszeitGraben() { return auftragszeitGraben; } public void getAuftragsZeitGraben(){ for (int i = 0; i < grundzeitenGraben.length; i++){ auftragszeitGraben[i] = grundzeitenGraben[i] + ((grundzeitenGraben[i] / 100) * verteilzeit) + ((grundzeitenGraben[i] / 100) * erholungszeit); } } public String[] getGewerke() { return gewerke; } public String[] getBauteileErdbau() { return bauteileErdbau; } public void setVerteilzeit(double verteilzeit) { this.verteilzeit = verteilzeit; } public void setErholungszeit(double erholungszeit) { this.erholungszeit = erholungszeit; } }
Vielen Dank schonmal im Voraus