@Override protected void onStart() { super.onStart(); /*Start Build Construct*/ RelativeLayout fl = (RelativeLayout) findViewById(R.id.gameCon); ScrollView scroll = new ScrollView(this); TextView sometext = new TextView(this); sometext.setText( "This is a Trivia Challenge" + "\n" + "This is Challenge #" + (currentGame.levels.get(0).challengeIndex + 1) + "\n\n" + currentGame .levels .get(0) .gameChallenges .get(currentGame.levels.get(0).challengeIndex) .riddleTriviaText); // sometext.setTextColor(); scroll.addView(sometext); scroll.setId(1); fl.addView(scroll, LayoutParams.MATCH_PARENT, 190); /*Build scrambler words*/ answers = currentGame .levels .get(0) .gameChallenges .get(currentGame.levels.get(0).challengeIndex) .riddleTriviaShortText .split(" "); String[] scrambledWords = new String[answers.length]; for (int x = 0; x < answers.length; x++) scrambledWords[x] = scrambleWord(answers[x]).toUpperCase(); /*Build GridView for each word*/ gv = new GridView[answers.length]; for (int x = 0; x < gv.length; x++) { gv[x] = new GridView(this); gv[x].setNumColumns(scrambledWords[x].length()); gv[x].setColumnWidth(15); Character[] letters = new Character[scrambledWords[x].length()]; for (int y = 0; y < scrambledWords[x].length(); y++) letters[y] = scrambledWords[x].charAt(y); gv[x].setAdapter(new ArrayAdapter<Character>(this, R.layout.scrambler_format, letters)); gv[x].setGravity(Gravity.CENTER); gv[x].setId(x + 2); RelativeLayout.LayoutParams param = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); param.addRule(RelativeLayout.BELOW, x + 1); gv[x].setOnItemClickListener( new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View view, int position, long id) { if (!letterSelected) { parentID = parent.getId(); letterSelected = true; textView = (TextView) view; } else { if (parent.getId() == parentID) { String temp; TextView tv = (TextView) view; temp = tv.getText().toString(); tv.setText(textView.getText().toString()); textView.setText(temp); Toast.makeText(getApplicationContext(), "Switch", Toast.LENGTH_SHORT).show(); parentID = -1; letterSelected = false; textView = null; } } } }); fl.addView(gv[x], param); } /*End Build Construct*/ /*Submission Button*/ submit.setOnClickListener( new View.OnClickListener() { public void onClick(View view) { if (!currentGame .levels .get(0) .gameChallenges .get(currentGame.levels.get(0).challengeIndex) .solved) { boolean correctAnswer = true; for (int x = 0; x < gv.length; x++) { for (int y = 0; y < answers[x].length(); y++) { if (!String.valueOf(answers[x].charAt(y)) .toUpperCase() .equals(((TextView) gv[x].getChildAt(y)).getText().toString())) correctAnswer = false; } } if (correctAnswer) { Toast.makeText(getApplicationContext(), "Correct!", Toast.LENGTH_SHORT).show(); ActiveGames.activeGames .get(gameIndex) .levels .get(0) .gameChallenges .get(currentGame.levels.get(0).challengeIndex) .solved = true; ActiveGames.activeGames.get(gameIndex).levels.get(0).challengesSolved++; ActiveGames.activeGames.get(gameIndex).progress = (int) (((float) ActiveGames.activeGames .get(gameIndex) .levels .get(0) .challengesSolved / (float) currentGame.levels.get(0).gameChallenges.size()) * 100.0); } else Toast.makeText(getApplicationContext(), "Incorrect", Toast.LENGTH_SHORT).show(); } else Toast.makeText(getApplicationContext(), "Already Solved!", Toast.LENGTH_SHORT).show(); } }); }