Android Build an Interactive Story App The Rest of the Story Loading Additional Pages

Evan Kuester
PRO
Evan Kuester
Pro Student 759 Points

Cannot find .getNextPage

package com.example.interactivestory.ui;

import android.content.Context; import android.content.Intent; import android.graphics.drawable.Drawable; import android.support.v4.content.ContextCompat; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView;

import com.example.interactivestory.R; import com.example.interactivestory.model.Page; import com.example.interactivestory.model.Story;

public class StoryActivity extends AppCompatActivity {

public static final String TAG = StoryActivity.class.getSimpleName();

private String name;
private Story story;
private ImageView storyImageView;
private TextView storyTextView;
private Button choice1Button;
private Button choice2Button;



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

    storyImageView = (ImageView)findViewById(R.id.storyImageView);
    storyTextView = (TextView)findViewById(R.id.storyTextView);
    choice1Button = (Button)findViewById(R.id.choice1Button);
    choice2Button = (Button)findViewById(R.id.choice2Button);

    Intent intent = getIntent();
    name = intent.getStringExtra(getString(R.string.key_name));
    if (name == null || name.isEmpty()) {
        name = "Friend";
    }
    Log.d(TAG, name);

    story = new Story();
    loadPage(0);

}

private void loadPage(int pageNumber) {
    final Page page = story.getPage(pageNumber);

    Drawable image = ContextCompat.getDrawable(this, page.getImageId());
    storyImageView.setImageDrawable(image);

    String pageText = getString(page.getTextId());
    // add name is placeholder include. Wont add if not

    pageText = String.format(pageText, name);
    storyTextView.setText(pageText);

    choice1Button.setTextColor(page.getChoice1().getTextId());
    choice1Button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            int nextPage = page.getChoice1().get;
            loadPage(nextPage);
        }
    });
    choice2Button.setTextColor(page.getChoice2().getTextId());
}

}

1 Answer

Hi Evan. Maybe you've solved it since then, but in case you haven't , just check the onClick() method at the bottom of your class. You wrote:

int nextPage = page.getChoice1().get;

instead of

int nextPage = page.getChoice1().getNextPage();

Hope that helps :)