2017-03-10 7 views
-4

私のアプリは、Activityを起動するためにStringのパスワードを尋ねるActivityで構成されています。入力にはEditText、検証にはButtonを使用しています。 Buttonが押された場合、アプリは挿入されたパスワード(「ABC」と見なします)が配列のパスワードと一致するかどうかを確認する必要があります。そうでない場合は、挿入したパスワードを赤色に設定します。パスワードと文字列の比較

public class Login extends AppCompatActivity{ 

    Button mButton; 
    EditText mEdit; 
    String [] mArray; 


    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.login); 

     mButton = (Button)findViewById(R.id.anmelden_button); 
     mEdit = (EditText)findViewById(R.id.password); 

     mButton.setOnClickListener(
       new View.OnClickListener() 
       { 
        public void onClick(View view) 
        { 
         Log.v("EditText", mEdit.getText().toString()); 
        } 
       }); 

     String [] mArray = getResources().getStringArray(R.array.password); 

     if (mArray.equals(mEdit.getText().toString())){ 
      Intent intent = new Intent(this, secondactivity.class); 
      startActivity(intent); 

     }else{ 
      mEdit.setTextColor(Color.RED); 
     } 
    } 
} 

私の問題は、私は、「ABC」を挿入し、ボタンを押すと、何もまったく起こらないこと、です。

+3

ナッシング:

あなたのonclickリスナーが何かは、次のようになりますか?ロギングステートメントでさえない? –

+0

ちょうど "V/EditText:ABC"しかし、これは私に何を教えてくれるのでしょうか? – Quacksilber

+0

Bc大胆なものは実際の問題をより詳細な説明として表示しますが、そうしたい場合にはこれを削除することができます:) – Quacksilber

答えて

1

あなたのEditTextの値に対してそれをチェックし、配列の各要素をonClickListener

ループの内側にあなたのパスワードチェックのコードを入れてくださいあなたが望むものを見つけたら

mButton.setOnClickListener(new View.OnClickListener() 
{ 
    public void onClick(View view) 
    { 
     String [] mArray = getResources().getStringArray(R.array.password); 

     // loop to check all passwords 
     for (String s : mArray) { 
      if (s.equals(mEdit.getText().toString())) { 
       // found the password 
       Intent intent = new Intent(this, secondactivity.class); 
       startActivity(intent); 
       return; 
      } 
     } 

     mEdit.setTextColor(Color.RED); 

    } 
}); 
+0

今何も起こらない – Quacksilber

+0

@Quacksilberテキストが赤くならず、新しいアクティビティが表示されない?そこにあなたを助けることができない、あなたのコードで何かが間違っています。 – Aify

+0

私はstrings.xmlでsthを変更しました。 :) – Quacksilber

0

あなたが、その後を確認し、最初にすべてのパスワードをループする必要がある

+2

チェック方法が正しくありません。あなたは文字列に対して配列オブジェクトをチェックしています。 – Pztar

+0

Allright、あなたの指示に従っていて、配列のものもすべて文字列に変更しましたが、今度はこの行(String [] mArray = getResources()。getString(R.string.password);というエラーが表示されます。 )が動作しない、bcがString []を必要とし、Stringが見つかりました。そこには何がありますか? – Quacksilber

+0

その行には "この文字列をこの配列に割り当てる_"と書かれています。そのような型は混在できません。あなたがこの 'int i ="これを文字列 "と書いたとします。それは同じ理由で動作しません - それは "この文字列をこのint_に割り当てます"と言います。 – csmckelvey