2017-09-22 57 views
1

我在同一個項目中提出了一個問題,但現在我遇到了另一個問題。我的目標是有一個本地存儲的密碼字段,當輸入密碼時,它等於屏幕顯示的變量。我已經完成了這個,但知道我想爲它調味一點點。我想這樣做,當背景顏色爲紅色時,密碼爲紅色,黃色和藍色等。我需要創建兩個隨機選擇相同變量的數組。我知道這是可能的,因爲我已經在Phaser中完成了它,但是我正在努力在Android Studio中完成它。無論如何,這裏是我的代碼到目前爲止,我嘗試製作一個數組。 感謝所有幫助, Murdoc在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鍵值搜索Map,這會給出一個顏色值。如果你想要密碼和顏色都是隨機的,那麼使用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

這並沒有直接回答我的問題。它可能會但是有點複雜。我正在記錄我將要在這裏做什麼,以便其他讀者可以獲得幫助。我將寫一個if語句,指出當背景顏色爲紅色時,passwordA = redpassword等等。現在我需要做的就是找到一種隨機更改背景顏色的方法,讓程序可以識別顏色並相應地設置變量。 –

+0

@MurdocGould創建一個HashMap key = 1 Value = Color然後將隨機生成器限制爲HashMap中的整數 – Grendel