0

如果我在其中键入例如“abc”,我想创建一些东西TextField,它将打开一个活动。如果我输入其他内容,我不希望它打开活动。我已经做了一些东西,它第一次工作(如果你没有输入一个有效的输入它是错误的,如果你输入“abc”它会打开一个页面。我想要这个系统有多个选项我使用了“abc”和“bbb” “。它第一次工作,但如果我返回并输入其他内容,它会打开与第一次尝试相同的页面。也许我必须禁用OnClickListener,但是如何?

这是我的 MainActivity.java

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

   final Button button = (Button) findViewById(R.id.button1);
   final EditText textedit = (EditText) findViewById(R.id.editText1);

    button.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {

            if ("abc".equals(textedit.getText().toString())) 
                button.setOnClickListener(new View.OnClickListener() {

                    @Override
                    public void onClick(View v) {
                        // TODO Auto-generated method stub
                        Intent intent = new Intent (MainActivity.this, Schoen1.class);
                        startActivity(intent);


                    }
                });                
            if ("bbb".equals(textedit.getText().toString()))
                button.setOnClickListener(new View.OnClickListener() {

                    @Override
                    public void onClick(View v) {
                        // TODO Auto-generated method stub
                        Intent i = new Intent (MainActivity.this, Schoen2.class);
                        startActivity(i);

                    }
                });
            else 
                button.setText("wrong pass");

        }
    });
}


@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;
}

}

“Schoen1”和“Schoen2”是我要打开的页面。谢谢!

4

2 回答 2

0

问题是onClickListener()已经设置好了。您需要做的是将该代码移动到您的onClick()

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                 if ("abc".equals(textedit.getText().toString())) 
                 {
                      Intent intent = new Intent (MainActivity.this, Schoen1.class);
                      startActivity(intent);
                 }
                 else  if ("bbb".equals(textedit.getText().toString()))
                 {
                       Intent i = new Intent (MainActivity.this, Schoen2.class);
                       startActivity(i);
                 }
于 2013-06-05T20:43:39.557 回答
0

对于初学者,您有两个onClickListeners 。onClickListener摆脱内部集合并尝试添加一个标志,这样一旦你Intent运行,它就不会在下一次再次运行。您将需要在某个时候重置标志,以便Intents不要只打开一次。

boolean flag1 = true;
boolean flag2 = true;

button.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {

        if ("abc".equals(textedit.getText().toString()) && flag1) {
            flag1 = false;
            Intent intent = new Intent (MainActivity.this, Schoen1.class);
            startActivity(intent);

        }  else if ("bbb".equals(textedit.getText().toString()) && flag2) {
            flag2 = false;
            Intent i = new Intent (MainActivity.this, Schoen2.class);
            startActivity(i);

        } else {
            button.setText("wrong pass");
        }

    }
});

代码未测试。

于 2013-06-05T20:52:29.933 回答