Ich arbeite an einer Anwendung und aus einer Listenansicht erstelle ich ein Paket, das den ausgewählten Artikel und den vorherigen Artikel enthält. Was ich feststellen muss, ist, ob das vorherige Element tatsächlich durchgebündelt wird. Wenn es existiert, möchte ich die Informationen, aber wenn es nicht existiert, dann muss ich meine Textansichten einstellen, um das zu reflektieren. Aber ich bekomme eine Nullzeigerausnahme, wenn sie nicht existiert, wenn ich versuche, die Empfangsaktivität zu laden (die Bündelungsaktivität verursacht nicht den Absturz, wie ich während des Debuggens gefunden habe). Ich komme zu dem Punkt, wo ich auf die Daten in der bündeln, bevor es abstürzt). Also habe ich den Code aus der Empfangsaktivität eingefügt.Prüfen, ob ein Teil eines Pakets in Android existiert
Bundle evmBundle = this.getIntent().getExtras();
final EVMData evm = (EVMData) evmBundle.getSerializable("evm");
final Project project = (Project) evmBundle.getSerializable("project");
if (!evmBundle.getSerializable("prvEVM").equals(null)){
final EVMData prvEvm = (EVMData) evmBundle.getSerializable("prvEVM");
edtPrvAC = (TextView) findViewById(R.id.edtPrvEVMAC);
edtPrvAC.setText(prvEvm.getAc().toString());
}
else{
edtPrvAC = (TextView) findViewById(R.id.edtPrvEVMAC);
edtPrvAC.setText("0");
}
Ich weiß etwas wird immer im Bündel für „prvEVM“, weil es zeigte sich als Teil des Bündels im Debugger durchlaufen.
Ich habe auch versucht, es zuerst aus dem Bündel zu ziehen und dann zu versuchen, es zu vergleichen. Nachdem er aus dem Bündel ziehen, prvEvm (mit Blick auf die Variablen im Debugger) null ist, so dachte ich, so etwas wie dies funktionieren könnte:
if (!prvEvm.equals(null)){
edtPrvAC = (TextView) findViewById(R.id.edtPrvEVMAC);
edtPrvAC.setText(prvEvm.getAc().toString());
}else{
edtPrvAC = (TextView) findViewById(R.id.edtPrvEVMAC);
edtPrvAC.setText("0");
}
Aber ich erhalte eine Nullpointer weil prvEvm Null ist. Also habe ich versucht, den if-Test umzudrehen, habe aber die gleichen Ergebnisse erzielt. Ich sollte beachten, dass egal, wie ich dies eingerichtet habe, wenn prvEvm nicht null ist, alle Konfigurationen hier funktionieren - die angeforderten Daten werden in die TextView gelegt. Im Grunde muss ich in der Lage sein, diese Nullzeiger-Ausnahme zu umgehen. Ich weiß, dass das Objekt null ist, ich möchte das testen, damit das Objekt nicht verwendet wird. Es wird nur einmal null sein.
Manchmal fühle ich mich einfach sehr dumm, wenn die Antwort so einfach ist. Vielen Dank! Speichert mir eine Datenbank lesen (die ich gerade den Code für und getestet hatte, als ich das sah). Ich schätze Ihre Hilfe! –