HalesEnchanted
HalesEnchanted

Reputation: 665

Change Textview based on String

I'm trying to change the text in TextView based on the string of the previous view with a Listview.

For some reason, it keeps returning an error. Here's my code:

public class LyricsFragment extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {


        /** Inflating the layout country_details_fragment_layout to the view object v */
        View v = inflater.inflate(R.layout.learnlyrics, null);

        /** Getting the textview object of the layout to set the details */
        TextView tv = (TextView) v.findViewById(R.id.learnsong);

        Bundle b = getArguments();

        tv.setText("Details of " + Country.name[b.getInt("position")]);

        int position = b.getInt("position");


        String s = b.getInt("position");
        if (s.startsWith("Pretty Hurts")) {

            tv.setText("[Intro]\\nHarvey Keitel: Ms. Third Ward, your first question -- what is your aspiration in life?\\n" +
                    "Beyoncé: Oh, my aspiration in life would be to be happy\\n\\n[Verse 1]\\nMama said, you're a pretty girl\\n " +
                    "What's in your head it doesn't matter\\nBrush your hair, fix your teeth\\nWhat you wear is all that matters\\n\\n[Pre-Hook]\\nJust another stage\\nPageant the pain away\\nThis time I'm gonna take the crown\\nWithout falling down, down\\n\\n[Hook]\\nPretty hurts\\nWe shine the light on whatever's worse\\nPerfection is the disease of a nation\\nPretty hurts, pretty hurts\\nWe shine the light on whatever's worse\\nTryna fix something\\nBut you can't fix what you can't see\\nIt's my soul that needs the surgery\\n\\n[Verse 2]\\nBlonder hair, flat chest\\nTV says bigger is better\\nSouth beach, sugar free\\nVogue says thinner is better\\n\\n[Pre-Hook + Hook]\\n\\n[Bridge]\\nAin’t got no doctor or pill that can take the pain away\\nThe pain's inside\\nAnd nobody frees you from your body\\nIt's the soul, its the that needs surgery\\nIt's the soul that needs surgery\\nPlastic smiles and denial can only take you so far\\nThen you break when the fake facade leaves you in the dark\\nYou left a shattered mirror\\nAnd the shards of a beautiful girl\\n\\n[Hook]\\n\\n[Outro]\\nWhen you're alone all by yourself\\nAnd you're lying in your bed\\nReflection stares right into you\\nAre you happy with yourself?\\nIt's just a way to masquerade\\nThe illusion has been shed\\nAre you happy with yourself?\\nAre you happy with yourself?\\nYes\\n");

        }

        return v;
    }
}

The error being:

String s = b.getInt("position");

As a new android developer, I'm not sure why? Please help.

Upvotes: 1

Views: 88

Answers (2)

HalesEnchanted
HalesEnchanted

Reputation: 665

Figured this out. Changed the intent to Activity and the activity has this code:

public class SongLyrics extends Activity {

Context context;
String[] rank;
int position;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    /** Setting the layout for this activity */
    setContentView(R.layout.learnlyrics);


    String title = getIntent().getExtras().getString("rank");

    Intent i = getIntent();
    position = i.getExtras().getInt("position");
    rank = i.getStringArrayExtra("rank");


    TextView titleTextView = (TextView) findViewById(R.id.learnsong);

  //  titleTextView.setText(title);

    titleTextView.setText(rank[position]);



}
}

Upvotes: 0

Jorgesys
Jorgesys

Reputation: 126445

The error is indicated by @JonasCz

you need to convert from int to String, because you can´t store an int into a String variable!

String s = String.valueOf(b.getInt("position"));

Upvotes: 1

Related Questions