
michael lee
5,178 Pointslooks like you aren't creating spaceship in the onCreate method
what am I doing wrong?
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class LandingActivity extends AppCompatActivity {
public Button thrustButton;
public TextView typeLabel;
public EditText passengersField;
public Spaceship spaceship;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_landing);
thrustButton = (Button)findViewById(R.id.thrustButton);
typeLabel = (TextView)findViewById(R.id.typeTextView);
passengersField = (EditText)findViewById(R.id.passengersEditText);
Spaceship spaceship = new Spaceship("FIREFLY");
// Add your code here!
}
}
public class Spaceship {
private String shipType;
private int numPassengers = 0;
public String getShipType() {
return shipType;
}
public void setShipType(String shipType) {
this.shipType = shipType;
}
public int getNumPassengers() {
return numPassengers;
}
public void setNumPassengers(int numPassengers) {
this.numPassengers = numPassengers;
}
public Spaceship() {
shipType = "SHUTTLE";
}
public Spaceship(String shipType) {
this.shipType = shipType;
}
}
1 Answer

Tadeáš Firich
7,866 PointsHello, Michael. You can't create a spaceship variable in onCreate method because the spaceship was created in the LandingActivity. Here:
public Spaceship spaceship;
Your job is to set spaceship to a new Spaceship object, NOT CREATE and set spaceship to a new Spaceship object. :) It means... From your code:
Spaceship spaceship = new Spaceship("FIREFLY");
Delete word the first word (Spaceship) from your line of code. The right version is this
spaceship = new Spaceship("FIREFLY");
Was it helpful? Do you understand the difference between creating and setting a variable?