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

Android - Fun Facts Activity - Random number doesn't show up!?

Hi all, I've implemented the random number generator test (to click and show 0,1,2), Android Studio doesn't show an error and the code complies fine. When I run the app I can click on the button and the text disappears but the numbers don't show up. Any help would be much appreciated:

Code for Fun Facts Activity.java

package com.stedroid.funfacts;

import android.app.Activity; import android.content.DialogInterface; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.TextView;

import java.util.Random;

public class FunFactsActivity extends Activity {

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

    //Declare our View Variables and assign them the views from the layout file

    final TextView factLabel = (TextView) findViewById(R.id.factTextView);
    Button showFactButton = (Button) findViewById(R.id.showFactsButton);
    View.OnClickListener listener = new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            //The button was clicked so update the fact label with some new fact
            String fact = "";
            factLabel.setText(fact);

            //Randomly select a fact
            Random randomGenerator = new Random(3); //construct a new random number generator
            int randomNumber = randomGenerator.nextInt();
            fact = randomNumber + "";

            //update our label with a new dynamic fact

        }
    };
    showFactButton.setOnClickListener(listener);
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.fun_facts, 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();
    if (id == R.id.action_settings) {
        return true;
    }
    return super.onOptionsItemSelected(item);
}

}

Solved it! Stupid errors:

I'd left the factLabel above the code random code and put the number parameter (3) into the newRandom method!!:

factLabel.setText(fact);

        //Randomly select a fact
        Random randomGenerator = new Random(3);

Although I did learn from it!!

1 Answer

Glad to hear you fixed it! Self-debugging is awesome in that you learn so much from it!