Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>SOLUTION FOR SHOWING WORD: instead of a spannable string (to hide and to show parts of the randomWord) i found StringBuilder, together with indexOf and userinput i was able to put in correct letters after a guess from the user. Like this: </p> <pre><code>public void guess() { char guess = userInput.getText().charAt(0); StringBuilder builder = new StringBuilder(hiddenWord); String j = ""+guess; int index = randomedWord.indexOf(guess); if (randomedWord.contains(j)) { while (index &gt;= 0) { builder.setCharAt(index*2, guess); index = randomedWord.indexOf(guess, index + 1); hiddenWord = builder.toString().trim(); wordHolder.setText(hiddenWord); if (!(hiddenWord.toString().contains("_".toString())) ) { winner(); } } } else { showImages(); } } </code></pre> <p>SOLUTION FOR RANDOMWORD(generate it): just look at James answer, I had return the cursor itself on my DB and not the string value of the column i wanted which is the correct way</p> <pre><code>db.open(); wordHolder.setText(db.randomize()); db.close(); public String randomize() { Cursor cursor; cursor = this.db.query("tblnames ORDER BY RANDOM() LIMIT 1", new String[] { "*" }, null, null, null, null, null); if(cursor.moveToFirst()) { return cursor.getString(cursor.getColumnIndexOrThrow( "word" )); } return ""; } </code></pre> <p>FULL CODE:</p> <p>// MainActivity.java</p> <pre><code>package com.emanuelolsson.simplehangman; import database.DBAdapter; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; public class HangMan extends Activity { // DECLARE NEEDED VARIABLES private Button newGameButton, enterLetterButton; private EditText userInput; private TextView wordHolder; private ImageView imageOne, imageTwo, imageThree, imageFour, imageFive, imageSix, imageSeven, imageEight, winner, hanged; private String hiddenWord, randomedWord; private int count = 0; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_hang_man); DBAdapter db = new DBAdapter(this); // ASSIGN OBJECTS newGameButton = (Button) findViewById(R.id.newGame); enterLetterButton = (Button) findViewById(R.id.enter); wordHolder = (TextView) findViewById(R.id.wordHolder); userInput = (EditText) findViewById(R.id.userInput); imageOne = (ImageView) findViewById(R.id.imageView1); imageTwo = (ImageView) findViewById(R.id.imageView2); imageThree = (ImageView) findViewById(R.id.imageView3); imageFour = (ImageView) findViewById(R.id.imageView4); imageFive = (ImageView) findViewById(R.id.imageView5); imageSix = (ImageView) findViewById(R.id.imageView6); imageSeven = (ImageView) findViewById(R.id.imageView7); imageEight = (ImageView) findViewById(R.id.imageView8); winner = (ImageView) findViewById(R.id.winner); hanged = (ImageView) findViewById(R.id.hanged); imageOne.setVisibility(View.INVISIBLE); imageTwo.setVisibility(View.INVISIBLE); imageThree.setVisibility(View.INVISIBLE); imageFour.setVisibility(View.INVISIBLE); imageFive.setVisibility(View.INVISIBLE); imageSix.setVisibility(View.INVISIBLE); imageSeven.setVisibility(View.INVISIBLE); imageEight.setVisibility(View.INVISIBLE); winner.setVisibility(View.INVISIBLE); hanged.setVisibility(View.INVISIBLE); wordHolder.setVisibility(View.VISIBLE); // ADD LISTENERS newGameButton.setOnClickListener(new OnClickListener(){ public void onClick(View arg0) { newGame(); } }); enterLetterButton.setOnClickListener(new OnClickListener(){ public void onClick(View arg0) { if (!(userInput.getText().toString().isEmpty()) ) { guess(); } else if (userInput.getText().toString().isEmpty()) { Toast toast = Toast.makeText(getApplicationContext(), "You need to insert a letter", Toast.LENGTH_SHORT); toast.show(); } } }); db.open(); db.fill(); randomedWord = db.randomize(); invWord(); wordHolder.setText(hiddenWord); db.clear(); db.close(); } public void newGame() { DBAdapter db = new DBAdapter(this); count = 0; imageOne.setVisibility(View.INVISIBLE); imageTwo.setVisibility(View.INVISIBLE); imageThree.setVisibility(View.INVISIBLE); imageFour.setVisibility(View.INVISIBLE); imageFive.setVisibility(View.INVISIBLE); imageSix.setVisibility(View.INVISIBLE); imageSeven.setVisibility(View.INVISIBLE); imageEight.setVisibility(View.INVISIBLE); winner.setVisibility(View.INVISIBLE); hanged.setVisibility(View.INVISIBLE); db.open(); db.fill(); randomedWord = db.randomize(); invWord(); wordHolder.setText(hiddenWord); db.clear(); db.close(); } public void invWord() { hiddenWord = randomedWord; hiddenWord = hiddenWord.replaceAll(".", "_" +" "); } public void guess() { char guess = userInput.getText().charAt(0); StringBuilder builder = new StringBuilder(hiddenWord); String j = ""+guess; int index = randomedWord.indexOf(guess); if (randomedWord.contains(j)) { while (index &gt;= 0) { builder.setCharAt(index*2, guess); index = randomedWord.indexOf(guess, index + 1); hiddenWord = builder.toString().trim(); wordHolder.setText(hiddenWord); if (!(hiddenWord.toString().contains("_".toString())) ) { winner(); } } } else { showImages(); } } private void winner() { imageOne.setVisibility(View.INVISIBLE); imageTwo.setVisibility(View.INVISIBLE); imageThree.setVisibility(View.INVISIBLE); imageFour.setVisibility(View.INVISIBLE); imageFive.setVisibility(View.INVISIBLE); imageSix.setVisibility(View.INVISIBLE); imageSeven.setVisibility(View.INVISIBLE); imageEight.setVisibility(View.INVISIBLE); winner.setVisibility(View.VISIBLE); } private void showImages() { count ++; if (count == 1) { imageOne.setVisibility(View.VISIBLE); } else if (count == 2) { imageTwo.setVisibility(View.VISIBLE); } else if (count == 3) { imageThree.setVisibility(View.VISIBLE); } else if (count == 4) { imageFour.setVisibility(View.VISIBLE); } else if (count == 5) { imageFive.setVisibility(View.VISIBLE); } else if (count == 6) { imageSix.setVisibility(View.VISIBLE); } else if (count == 7) { imageSeven.setVisibility(View.VISIBLE); } else if (count == 8) { gameEnd(); } } private void gameEnd() { imageOne.setVisibility(View.INVISIBLE); imageTwo.setVisibility(View.INVISIBLE); imageThree.setVisibility(View.INVISIBLE); imageFour.setVisibility(View.INVISIBLE); imageFive.setVisibility(View.INVISIBLE); imageSix.setVisibility(View.INVISIBLE); imageSeven.setVisibility(View.INVISIBLE); imageEight.setVisibility(View.VISIBLE); hanged.setVisibility(View.VISIBLE); wordHolder.setText(randomedWord); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_hang_man, menu); return true; } } </code></pre> <p>// XML</p> <pre><code> &lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" &gt; &lt;ImageView android:id="@+id/imageView1" android:layout_width="150dp" android:layout_height="150dp" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="43dp" android:contentDescription="@string/picOne" android:src="@drawable/one" /&gt; &lt;ImageView android:id="@+id/imageView2" android:layout_width="150dp" android:layout_height="150dp" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="43dp" android:contentDescription="@string/picTwo" android:src="@drawable/two" /&gt; &lt;ImageView android:id="@+id/imageView3" android:layout_width="150dp" android:layout_height="150dp" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="43dp" android:contentDescription="@string/picThree" android:src="@drawable/three" /&gt; &lt;ImageView android:id="@+id/imageView4" android:layout_width="150dp" android:layout_height="150dp" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="43dp" android:contentDescription="@string/picFour" android:src="@drawable/four" /&gt; &lt;ImageView android:id="@+id/imageView5" android:layout_width="150dp" android:layout_height="150dp" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="43dp" android:contentDescription="@string/picFive" android:src="@drawable/five" /&gt; &lt;ImageView android:id="@+id/imageView6" android:layout_width="150dp" android:layout_height="150dp" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="43dp" android:contentDescription="@string/picSix" android:src="@drawable/six" /&gt; &lt;ImageView android:id="@+id/imageView7" android:layout_width="150dp" android:layout_height="150dp" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="43dp" android:contentDescription="@string/picSeven" android:src="@drawable/seven" /&gt; &lt;ImageView android:id="@+id/imageView8" android:layout_width="150dp" android:layout_height="150dp" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="43dp" android:contentDescription="@string/picEight" android:src="@drawable/eight" /&gt; &lt;ImageView android:id="@+id/winner" android:layout_width="150dp" android:layout_height="150dp" android:layout_alignTop="@+id/imageView1" android:layout_centerHorizontal="true" android:contentDescription="@string/winner" android:src="@drawable/winner" /&gt; &lt;ImageView android:id="@+id/hanged" android:layout_width="150dp" android:layout_height="150dp" android:layout_alignTop="@+id/imageView1" android:layout_centerHorizontal="true" android:contentDescription="@string/hanged" android:src="@drawable/hanged" /&gt; &lt;TextView android:id="@+id/wordHolder" android:layout_width="175dp" android:layout_height="40dp" android:layout_centerInParent="true" android:layout_alignTop="@+id/imageView1" android:layout_marginTop="134dp" android:layout_marginLeft="50dp" android:ems="10" android:textSize="30dp" /&gt; &lt;Button android:id="@+id/newGame" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignRight="@+id/wordHolder" android:layout_centerVertical="true" android:text="@string/newGame" /&gt; &lt;Button android:id="@+id/enter" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/newGame" android:layout_alignBottom="@+id/newGame" android:layout_toLeftOf="@+id/newGame" android:text="@string/enter" /&gt; &lt;EditText android:id="@+id/userInput" android:layout_width="40dp" android:layout_height="40dp" android:layout_alignBaseline="@+id/enter" android:layout_alignBottom="@+id/enter" android:layout_toLeftOf="@+id/enter" android:ems="10" android:inputType="text" android:textSize="20dp" &gt; &lt;requestFocus /&gt; &lt;/EditText&gt; &lt;ImageView android:id="@+id/imageView9" android:layout_width="250dp" android:layout_height="60dp" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:contentDescription="@+id/header" android:src="@drawable/header" /&gt; &lt;/RelativeLayout&gt; </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload