0

こんにちは、Android 開発の初心者です。これは、stackoverFlow に関する私の最初の投稿です。ブラッド・ピットの写真が編集テキストとボタンになっているものを作ろうとしています。オブジェクトは、誰が写真に写っているかを推測することです。ユーザーがブラッド・ピットと入力してボタンをクリックすると、別の写真が表示された2番目のページに移動し、間違っている場合はトースト「間違った答え」を実行できるようにしたい. 私の問題は、正しい答えが与えられたときに 2 ページ目に移動しないことです。

public class MainActivity extends Activity {

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

        Button submit = (Button) findViewById(R.id.button1);
        EditText input = (EditText) findViewById(R.id.etAnswer);
        final String userinput = input.toString();
        submit.setOnClickListener(new View.OnClickListener() {


            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                {if (userinput.equals("tom")) {
                    Intent myintent = new Intent (MainActivity.this,MainActivity2.class) ;
                    startActivity (myintent);
                    ;
                    }else{
                        Toast.makeText(getApplicationContext(), "Wrong Answer", Toast.LENGTH_SHORT ).show();
                    }
                }
            }});
            }           

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}
4

4 に答える 4

2

userinput.equals("tom")する 代わりに"tom".equals(input.getText().toString())

あなたはまったく必要ありませuserinput

于 2013-05-13T14:12:06.837 に答える
0

ねえ、あなたはあなたのeditText前に宣言する必要がありonCreate()、あなたStringはすべきではありませんfinal

public class MainActivity extends Activity {
EditText input;
String userinput;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Button submit = (Button) findViewById(R.id.button1);
    input = (EditText) findViewById(R.id.editText1);

    submit.setOnClickListener(new OnClickListener() {

        @Override
    public void onClick(View v) {
         userinput = input.getText().toString();
        Toast.makeText(getApplicationContext(), userinput, Toast.LENGTH_SHORT ).show();
            if (userinput.equals("tom")) {
        Intent myintent = new Intent (MainActivity.this,MainActivity2.class) ;
        startActivity (myintent);
        Toast.makeText(getApplicationContext(), "Correct Answer", Toast.LENGTH_SHORT ).show();
        }else{
            Toast.makeText(getApplicationContext(), "Wrong Answer"+userinput, Toast.LENGTH_SHORT ).show();
        }
    }
});



}
}

ねえ、ここに私のドロップボックスフォルダのリンクがあります. リンク

于 2013-05-13T14:13:43.867 に答える
0

EditText に含まれるテキストを取得する適切な方法は、 を使用することEditText.getText()です。この行を置き換えてみてください:

final String userinput = input.toString();

次のようなもので:

final String userinput = input.getText().toString();

また、これはクリック後に行う必要があります。この行を onCreate に配置すると、onCreate は実行の開始時にのみ実行されるため、常に userinput が空の文字列または EditText のデフォルト値に設定されます。

于 2013-05-13T14:14:15.603 に答える