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:
public 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);
}
}
Alles anzeigen
public 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);
}
}
Alles anzeigen
public 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;
}
}
Alles anzeigen
Vielen Dank schonmal im Voraus