2017-09-22 1 views
1

Ich habe eine Frage früher auf das gleiche Projekt, aber jetzt habe ich ein anderes Problem. Mein Ziel ist es, ein Kennwortfeld zu haben, das lokal gespeichert wird und wenn ein Passwort eingegeben wird, das der Variablen entspricht, die ein Bildschirm anzeigt. Ich habe es geschafft, aber ich möchte es etwas aufpeppen. Ich möchte es so machen, dass, wenn die Hintergrundfarbe rot ist, das Passwort rot ist und so weiter für gelb und blau. Ich muss zwei Arrays erstellen, die beide die selbe Variable zufällig auswählen. Ich weiß, dass dies möglich ist, weil ich es in Phaser gemacht habe, aber ich kämpfe darum, es in Android Studio zu tun. Wie auch immer, hier ist mein Code soweit und mein Versuch, ein Array zu erstellen. Vielen Dank für all die Hilfe, MurdocErstellen von zufälligen entsprechenden Arrays in 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

Ich habe Sie nicht bekommen, was Sie wollen? –

+0

Das hast du gemacht, aber jetzt möchte ich das Projekt für ein College-Projekt weiter ausbauen. –

Antwort

0

Schreiben Sie einfach ein paar if-Anweisungen oder eine switch-Anweisung verwenden. Wenn Sie eine ernsthafte App schreiben, würden Sie keine Passwörter in einem Array speichern! Ich verstehe, dass Sie in der High School, aber in Betracht ziehen, sqlite Datenbank zu verwenden, es öffnet eine neue Welt, um apps zu entwickeln. Die Speicherung von Daten ist eine wunderbare Lernerfahrung. Zurück zu Ihrer Frage hier ist ein kleiner Ausschnitt aus IF-Code. In Ihrem Fall greifen Sie das Passwort aus dem Array und hart Code die Farbe, um nach einer Übereinstimmung zu suchen. Eine bessere Lösung wäre ein HashMap-Schlüsselwert, der die Map mit dem zufälligen Passwort als Schlüssel sucht und dies ergibt einen Wert, der eine Farbe ist. Wenn sowohl das Passwort als auch die Farbe zufällig sein sollen, dann verwenden Sie das IF-Statement-Konzept

   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

Das hat meine Frage nicht direkt beantwortet. Es könnte sein, aber es ist ein wenig komplizierter. Ich dokumentiere aber, was ich hier machen werde, damit jeder, der dies liest, Hilfe bekommen kann. Ich werde eine if-Anweisung schreiben, die besagt, dass wenn die Hintergrundfarbe rot ist passwordA = redpassword usw. für jede Farbe. Jetzt muss ich nur noch eine Möglichkeit finden, die Hintergrundfarbe nach dem Zufallsprinzip zu ändern und sie so zu gestalten, dass das Programm die Farbe erkennen und die Variable entsprechend einstellen kann. –

+0

@MurdocGould Erstellen Sie einen HashMap-Schlüssel = 1 Wert = Farbe und beschränken Sie dann den Zufallsgenerator auf Ganzzahlen in der HashMap – Grendel

Verwandte Themen