2016-04-25 14 views
0

簡単な推測ゲームを作成してアンドロイドを学習し、Arraylistで画像を設定してランダム操作を適用しましたが、テキストの値と画像の名前を一致させる方法が混乱します。私はスコアを設定することができます。edittextと画像の名前が一致しません

public class MainActivity extends AppCompatActivity { 
    private EditText editText; 
    private Button button; 

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

     ArrayList<Integer> list = new ArrayList<Integer>(); 
     ImageView random_image = (ImageView) findViewById(R.id.imageView); 
     final int[] images = {R.drawable.kung_fu_panda, R.drawable.mr_nobody, R.drawable.toy_story}; 
     list.add(R.drawable.kung_fu_panda); 
     list.add(R.drawable.mr_nobody); 
     list.add(R.drawable.toy_story); 
     int position = new Random().nextInt(list.size()); 
     random_image.setImageResource((Integer) list.get(position)); 
     list.remove(position); 

     button = (Button) findViewById(R.id.button); 
     editText = (EditText) findViewById(R.id.editText); 

     button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       validateInput(); 
      } 
     }); 

    } 

    private void validateInput() { 
     String input = editText.getText().toString(); 

    } 

答えて

0

あなたは画像の定義名の配列をしてみてください、とランダムな位置で名を取得し、currentNameは名前を保存することができます。

String currentName; 

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

    ArrayList<Integer> list = new ArrayList<Integer>(); 
    ImageView random_image = (ImageView) findViewById(R.id.imageView); 
    final String imageNames = {"kung fu panda", "mr nobody", "toy story"}; 
    list.add(R.drawable.kung_fu_panda); 
    list.add(R.drawable.mr_nobody); 
    list.add(R.drawable.toy_story); 
    int position = new Random().nextInt(list.size()); 
    random_image.setImageResource((Integer) list.get(position)); 
    currentName = imageNames[position]; 
    list.remove(position); 

    button = (Button) findViewById(R.id.button); 
    editText = (EditText) findViewById(R.id.editText); 

    button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      validateInput(); 
     } 
    }); 

} 

次に、あなたのvalidateInput()方法では、あなたが入力文字列をフォーマットするString.toLowerCase()を使用して、通知の場合を比較するcurrentNameを使用することができます。

private boolean validateInput() { 
    String input = editText.getText().toString(); 
    if(!TextUtils.isEmpty(input)){ 
     input = input..toLowerCase(); 
     if(input.equeals(currentName)){ 
      return true; 
     } 
    } 
    return false; 
} 
関連する問題