Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Android Build an Interactive Story App (Retired) Intents and Multiple Activities Putting Data in an Intent

pranav kakkad
pranav kakkad
755 Points

error

./LaunchActivity.java:24: error: int cannot be dereferenced String FUEL_LEVEL=mFuelLevel.getText.toString(); ^ Getting this error , how to resolve it?

LaunchActivity.java
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class LaunchActivity extends Activity {

  public Button mLaunchButton;
  public int mFuelLevel;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_launch);

    // mFuelLevel is set elsewhere.
    // Code ommitted for brevity!

    mLaunchButton = (Button)findViewById(R.id.launchButton);
    mLaunchButton.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        // Add your code in here!
        String FUEL_LEVEL=mFuelLevel.getText.toString();
       flightActivity(FUEL_LEVEL);
      }
    });
  }
    private void flightActivity(String FUEL_LEVEL)
    {
       Intent intent = new Intent(LaunchActivity.this, FlightActivity.class);
        intent.putExtra("name",FUEL_LEVEL);
        startActivity(intent);
    }
}

1 Answer

Jasmeet Singh
Jasmeet Singh
20,145 Points

The code challenge was to simply pass the value of the int field mFuelLevel through intent. your are doing way too much work here. in the mLaunchButton's onClick method

intent.putExtra("FUEL_LEVEL", mFuelLevel);

will get it done.

No need to create another method flightActivity and another intent object.

But if you're keen to know what went wrong here's the solution

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class LaunchActivity extends Activity {

  public Button mLaunchButton;
  public int mFuelLevel;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_launch);

    // mFuelLevel is set elsewhere.
    // Code ommitted for brevity!

    mLaunchButton = (Button)findViewById(R.id.launchButton);
    mLaunchButton.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        // Add your code in here!
        // String FUEL_LEVEL=mFuelLevel.getText.toString(); ------ No need to define the key. It's already given in challenge
       flightActivity(); //------- no arguments needed.
      }
    });
  }
    private void flightActivity()
    {
       Intent intent = new Intent(LaunchActivity.this, FlightActivity.class);
        intent.putExtra("FUEL_LEVEL", mFuelLevel); 
        startActivity(intent);
    }
}