2017-03-02 5 views
0

ハードコードされたスクランブルワードを生成する「新しい単語」ボタンをクリックしようとしています。いずれか(自転車、ボール、ピエロ、リンゴ)。私のアプリが実行されますが、ボタンをクリックしても何も起こりません。私はそれがonClicklistenerか何か不足しているかどうかわかりません。どのようなコーディングの助けにも感謝します。私のスペルチェックボタンは、「はい、あなたは正しい」または「もう一度やり直してください」を生成すると考えられます。あなたは(XMLレイアウトで)ボタンに追加する必要がワードスクランブラー、Androidスタジオ

主な活動

import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 
import android.widget.Toast; 

import java.util.Random; 

public class MainActivity extends AppCompatActivity { 
    private Random random; 
    private static String[] words = {"clown", "ball", "bike", "apple"}; 
    private String inputField; 
    private String answerField; 
    private EditText userAns; 
    private TextView scrammbleField; 
    private Button newWord; 
    private Button spellCheck; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    random = new Random(); 
    userAns = (EditText)findViewById(R.id.spellAns); 
    scrammbleField = (TextView) findViewById(R.id.scrambleWrd); 
    newWord = (Button)findViewById(R.id.newWord); 
    spellCheck = (Button)findViewById(R.id.spellCheck); 

} 
public void answer(View view) { 
    String input = userAns.getText().toString(); 
    if(answerField.equalsIgnoreCase(input)){ 
     Toast.makeText(MainActivity.this,"Correct answer!",Toast.LENGTH_LONG).show(); 
    } 
    else{ 
     Toast.makeText(MainActivity.this,"Try again!",Toast.LENGTH_LONG).show(); 

    } 
} 
public void submitting(View view) { 
    int randint = random.nextInt(words.length); 
    answerField = words[randint]; 
    inputField = wordScramble.Scramble(answerField); 
    scrammbleField.setText(inputField); 
    userAns.setText(""); 

} 
} 

XML活動

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/activity_main" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context="com.example.hynes.scrambler.MainActivity"> 

<Button 
    android:text="Get A New Word" 
    android:layout_height="wrap_content" 
    android:layout_marginBottom="84dp" 
    android:id="@+id/newWord" 
    android:layout_width="500dp" 
    android:layout_above="@+id/spellCheck" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" /> 

<Button 
    android:text="Spelll Check!" 
    android:layout_width="500dp" 
    android:layout_height="wrap_content" 
    android:layout_marginBottom="89dp" 
    android:id="@+id/spellCheck" 
    android:layout_alignParentBottom="true" 
    android:layout_centerHorizontal="true" /> 

<TextView 
    android:text="ALPHABETS:" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/spellCheck" 
    android:layout_alignRight="@+id/textView" 
    android:layout_alignEnd="@+id/textView" 
    android:layout_marginBottom="54dp" 
    android:id="@+id/textView2" /> 

<ImageView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    app:srcCompat="@mipmap/ic_launcher" 
    android:layout_alignParentTop="true" 
    android:layout_alignLeft="@+id/scrambleWrd" 
    android:layout_alignStart="@+id/scrambleWrd" 
    android:layout_marginLeft="19dp" 
    android:layout_marginStart="19dp" 
    android:layout_marginTop="43dp" 
    android:id="@+id/imageView" /> 

<TextView 
    android:text="Spell:" 
    android:layout_width="40dp" 
    android:layout_height="wrap_content" 
    android:id="@+id/textView3" 
    android:layout_above="@+id/spellCheck" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:layout_marginBottom="20dp" 
    android:layout_toLeftOf="@+id/scrambleWrd" 
    android:layout_toStartOf="@+id/scrambleWrd" /> 

<EditText 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:inputType="textPersonName" 
    android:text="Name" 
    android:ems="10" 
    android:layout_alignParentBottom="true" 
    android:layout_alignRight="@+id/spellAns" 
    android:layout_alignEnd="@+id/spellAns" 
    android:layout_marginRight="43dp" 
    android:layout_marginEnd="43dp" 
    android:layout_marginBottom="21dp" 
    android:id="@+id/editText3" /> 

<EditText 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:inputType="textPersonName" 
    android:text="Name" 
    android:ems="10" 
    android:id="@+id/spellAns" 
    android:layout_above="@+id/spellCheck" 
    android:layout_toRightOf="@+id/textView2" 
    android:layout_toEndOf="@+id/textView2" /> 

</RelativeLayout> 

WORDSCRAMBLER.java

import java.util.ArrayList; 
import java.util.Collections; 
import java.util.Random; 



public class wordScramble { 
public static void main(String []args){ 
    Random rand = new Random(); 
    String[] words = {"clown", "ball", "bike", "apple"}; 
    int randint = rand.nextInt(words.length); 
    String Pickword = words[randint]; 
    Scramble(Pickword); 
} 


public static String Scramble(String ch) 
{ 
    ArrayList<Character> array = new ArrayList<Character>(); 
    String Scrambled = ""; 
    for (int b = 0; b < ch.length() ; b++){ 
     array.add(ch.charAt(b)); 
    } 
    Collections.shuffle(array); 
    for (int k = 0; k < array.size(); k++) 
    { 
     Scrambled += array.get(k); 
    } 
    return Scrambled; 
} 

答えて

0

android:onClick="submitting" 

また、新規クラス作成してみてください:

import java.util.ArrayList; 
import java.util.Collections; 
import java.util.Random; 


public class WordScramble2 { 

static String pickword; 


public WordScramble2() 
{ 
    Random rand = new Random(); 
    String[] words = {"clown", "ball", "bike", "apple"}; 
    int randint = rand.nextInt(words.length); 
    pickword = words[randint]; 

} 



    public static String scramble(String ch) 
{ 
    ArrayList<Character> array = new ArrayList<Character>(); 
    String Scrambled = ""; 
    for (int b = 0; b < ch.length() ; b++){ 
     array.add(ch.charAt(b)); 
    } 
    Collections.shuffle(array); 
    for (int k = 0; k < array.size(); k++) 
    { 
     Scrambled += array.get(k); 
    } 
    return Scrambled; 
}} 

を、ボタン、メインアクティビティ変更:私は「取得をクリックすると、あなたが私のアプリがクラッシュ正しいいる間

public void submitting(View view) { 
int randint = random.nextInt(words.length); 
answerField = words[randint]; 
WordScramble2 wrdScr2 = new WordScramble2(); 
inputField = wrdScr2.scramble(answerField); 
scrammbleField.setText(inputField); 
userAns.setText(""); 

}

+0

を新しい単語 "ボタン私のプログラムがheresコードエラーをクラッシュするプロセス:com.example.hynes.scrambler、PID:2806 java.lang.IllegalStateException:アンドロイドのメソッドを実行できませんでした:onClick andr (View.java:5610) (android.view.View)$ PerformClick.run(View。 java:222 –

+0

完全なエラーメッセージをコピーできますか?その後何が来るの? – SHAI

+0

私はこのサイトに文字制限のために多くの文字を投稿できないと言います –