2017-09-22 9 views
1

私は以前同じプロジェクトで質問をしましたが、今は別の問題があります。私の目標は、ローカルに保存されているパスワードフィールドと、画面に表示される変数と等しいパスワードが入力されていることです。私はこれを達成しましたが、私はそれを少しスパイスしたいと思っています。背景色が赤色のときは、パスワードが赤色で、黄色と青色であるようにしたい。私は、両方が同じ変数をランダムに選ぶ2つの配列を作成する必要があります。私はこれがPhaserの中でやったのでこれが可能だとわかっていますが、私はAndroid Studioでそれをやっていることに苦労しています。とにかくここまで私のコードと配列を作る試みです。すべての助けを おかげで、 マードックAndroidでランダムに対応する配列を作成する

package com.example.murdocbgould.passwordpt4; 

import android.content.Intent; 
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 com.example.murdocbgould.passwordpt4.R; 
import com.example.murdocbgould.passwordpt4.Welcome; 

import java.security.AccessController; 
import java.util.Random; 

public class MainActivity extends AppCompatActivity { 



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

     final String apassword[] = {"rootr", "rootb", "rooty"}; 

     final String acolors[] = {"red", "blue", "yellow"}; 

     Random rn = new Random(); 
     int answer = rn.nextInt(3) + 1; 



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

     button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 

       textView2.setText(editText.getText().toString().trim()); 
       if(editText.getText().toString().trim().equals(apassword)){ 
        Intent myIntentR1 = new Intent(view.getContext(), Welcome.class); 
        startActivity(myIntentR1); 
       } else { 
        Intent a = new Intent(view.getContext(), FTry.class); 
        startActivity(a); 
       } 
      } 
     }); 

    } 
} 
+0

私はあなたが望むものを手に入れませんか? –

+0

あなたはしましたが、今は大学プロジェクトのためにプロジェクトをさらに拡大したいと考えています。 –

答えて

0

ちょうどif文の束を書いたり、switchステートメントを使用します。あなたが深刻なアプリを書くつもりなら、あなたは配列にパスワードを保存しません!私は高校であなたを理解していますが、アプリケーションを開発するための新しい世界を開くsqliteデータベースの使用を検討してください。データの保存は素晴らしい学習体験です。あなたの質問に戻ると、ここには小さなIFコードがあります。あなたの場合は、配列からパスワードを取得し、一致するものを探すために色をハードコードします。 より良い解決策は、HashMapのキー値検索で、マップとしてランダムなパスワードをキーとして使用し、これは色の値を与えます。パスワードと色の両方をランダムにしたい場合は、IFステートメントの概念を使用してください。

   if(!etPW.getText().toString().equals(etCPW.getText().toString())){ 
       Toast.makeText(MainActivity.this,"Password Does NOT\n"+"Match Confirm Password",Toast.LENGTH_LONG).show(); 
       etPW.setText(""); 
       etCPW.setText(""); 
       etPW.requestFocus(); 
       return; 
      } 
+0

これは私の質問に直接答えませんでした。それはかもしれないが、もう少し複雑です。私はここでやろうとしていることを文書化していますが、これを読んでいる誰もが助けを受けることができます。背景色が赤色のときはpasswordA = redpasswordというようにif文を書くつもりです。今私がする必要があるのは、プログラムが色を認識してそれに応じて変数を設定できるように、背景色をランダムに変更し、その色を変更する方法を見つけることだけです。 –

+0

@ MurdocGould HashMapキーを作成する= 1 Value = Color次に、HashMap内の乱数ジェネレータを整数に制限する – Grendel

関連する問題