我想创建一些东西,如果我在TextField
中键入例如“abc”,它将打开一个活动。如果我输入别的东西,我不希望它打开活动。
我已经做了一些东西,它第一次工作(如果你没有输入有效的输入,它会出错,如果输入“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”是我打开的页面。 谢谢!
答案 0 :(得分: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);
}
答案 1 :(得分:0)
对于初学者,您在onClickListener
内有两个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");
}
}
});
代码未经测试。