我写了一个代码来检查用户名和密码是否是admin ... 如果是,则重定向到管理 Activity (Activity_2),否则将用户重定向到另一个 Activity (ac) ... 但是我的代码有问题,因为切换按钮的状态没有按照我的意愿改变:\
这是我的主要 Activity 代码:
package com.example.task_7;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.ToggleButton;
public class MainActivity extends Activity {
Button b1;
ToggleButton b2;
EditText t1,t2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
b1=(Button) findViewById(R.id.login);
b2=(ToggleButton) findViewById(R.id.isAdmin);
t1=(EditText) findViewById(R.id.userName);
t2=(EditText) findViewById(R.id.password);
b2.setChecked(false);
b2.setEnabled(false);
if(t1.getText().toString().equals("e") && t2.getText().toString().equals("123") ){
b2.setEnabled(true);
b2.setText("ON");
}
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent i;
if(b2.isChecked()) {
i = new Intent(getApplicationContext(), Activity_2.class);
i.putExtra("UserName", t1.getText().toString());
i.putExtra("Password", t2.getText().toString());
startActivity(i);
}
else {
i = new Intent(getApplicationContext(), ac.class);
i.putExtra("UserName", t1.getText().toString());
startActivity(i);
}
}
});
}
}
最佳答案
您将此检查放在 onCreate()
方法中,以便它只在开始时完成一次。您需要为您的 EditTexts
创建 TextWatcher
:
TextWatcher tw = new TextWatcher()
{
@Override
public void onTextChanged(CharSequence s, int start, int before, int count)
{}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after)
{}
@Override
public void afterTextChanged(final Editable s)
{
if(t1.getText().toString().equals("e") && t2.getText().toString().equals("123") ){
b2.setEnabled(true);
b2.setText("ON");
}
}
});
t1.addTextChangedListener(tw);
t2.addTextChangedListener(tw);
这样,每次有人更改其中一个 EditText
中的文本时,都会检查条件。
当然你可以考虑一些更有效的事情,比如创建接受按钮,当它被点击时,条件就会被检查。但这取决于您。
关于android - 如果我完成输入两个编辑文本用户名和密码,如何启用切换按钮并将其打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17315757/