android - 如果我完成输入两个编辑文本用户名和密码,如何启用切换按钮并将其打开

标签 android eclipse emulation

我写了一个代码来检查用户名和密码是否是admin ... 如果是,则重定向到管理 Activity (Activity_2),否则将用户重定向到另一个 Activity (ac) ... 但是我的代码有问题,因为切换按钮的状态没有按照我的意愿改变:\

enter image description here

这是我的主要 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/

相关文章:

Android 屏幕兼容性问题

android - AsyncLayoutInflator 陷阱

android - 在 style.xml 中设置底层 TextView 的样式

android - 尝试运行 "ionic cordova run --emulator"时在 com.android.prefs.AndroidLocation.getAvdFolder() 上获取 NoSuchMethodError 异常

java - Android 应用未在其他设备上运行

android - Firestore 与 Firebase 的离线问题

eclipse - 如何使用org.eclipse.ui.menus向Eclipse Package Explorer上下文菜单项添加子菜单项?

java - Eclipse 打开项目中包含的文件

android - 尝试在 Eclipse 中安装 Android ADT 和其他一些东西

android - takePicture回调数据为null