简体   繁体   English

不知道为什么 if 不起作用 android studio

[英]cant figure why the if is not working android studio

I'm trying to make a register page that unless all the edit texts contain something the user wont be able to continue, but i don't get why my if isn't working.我正在尝试制作一个注册页面,除非所有编辑文本都包含用户无法继续的内容,但我不明白为什么我的 if 不起作用。

package com.example.nir.nestleapp;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import org.w3c.dom.Text;

import java.util.jar.Attributes;

public class RegisterActivity extends AppCompatActivity {
MyDBHandler db;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register);
        TextView RegisterHead=(TextView)findViewById(R.id.RegisterHeadline);
        RegisterHead.setTextSize(25);
        Button CompleteRegister=(Button)findViewById(R.id.CompleteRegisterBtn);
        final EditText RegisteredUser=(EditText)findViewById(R.id.RegisteredUser);
        final EditText RegisteredPass=(EditText)findViewById(R.id.RegisteredPass);
        final EditText RegisteredName=(EditText)findViewById(R.id.RegisteredFn);
        final EditText RegisteredPhone=(EditText)findViewById(R.id.RegisteredPhone);
        final EditText RegisteredID=(EditText)findViewById(R.id.RegisteredID);
        final String User2String=String.valueOf(RegisteredUser.getText());
        final String Pass2String=String.valueOf(RegisteredPass.getText());
        final String Name2String=String.valueOf(RegisteredName.getText());
        final String Phone2String=String.valueOf(RegisteredPhone.getText());
        final String ID2String=String.valueOf(RegisteredID.getText());
        db=new MyDBHandler(this);
        CompleteRegister.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(User2String.equals("")||Pass2String.equals("")|| Name2String.equals("")||Phone2String.equals("")||ID2String.equals("")){
                    Toast.makeText(RegisterActivity.this, "", Toast.LENGTH_SHORT).show();
                }
                else {
                    UserTable NewUser=new UserTable(User2String,Pass2String,Name2String,Phone2String,ID2String);
                    db.Add(NewUser);
                    Toast.makeText(RegisterActivity.this, "", Toast.LENGTH_SHORT).show();
                    startActivity(new Intent(RegisterActivity.this, LoginActivity.class));
                }
            }
        });
    }
}

and another question, why does every time that i use Setonclicklistner method and i use some parameter that i declared outside the method it automatically change it to final还有一个问题,为什么每次我使用 Setonclicklistner 方法并使用我在方法之外声明的一些参数时,它会自动将其更改为 final

Your strings were declared in the onCreate method which means changes the user made were never taken into account in your onClick method.您的字符串是在 onCreate 方法中声明的,这意味着您的 onClick 方法从未考虑过用户所做的更改。 By moving your strings in the onClick method you should fix your problem.通过在 onClick 方法中移动您的字符串,您应该可以解决您的问题。

So to fix your issue replace your code in onCreate with this:因此,要解决您的问题,请使用以下内容替换 onCreate 中的代码:

    @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_register);
            TextView RegisterHead=(TextView)findViewById(R.id.RegisterHeadline);
            RegisterHead.setTextSize(25);
            Button CompleteRegister=(Button)findViewById(R.id.CompleteRegisterBtn);
            final EditText RegisteredUser=(EditText)findViewById(R.id.RegisteredUser);
            final EditText RegisteredPass=(EditText)findViewById(R.id.RegisteredPass);
            final EditText RegisteredName=(EditText)findViewById(R.id.RegisteredFn);
            final EditText RegisteredPhone=(EditText)findViewById(R.id.RegisteredPhone);
            final EditText RegisteredID=(EditText)findViewById(R.id.RegisteredID);

            CompleteRegister.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {

                    final String User2String=String.valueOf(RegisteredUser.getText());
                    final String Pass2String=String.valueOf(RegisteredPass.getText());
                    final String Name2String=String.valueOf(RegisteredName.getText());
                    final String Phone2String=String.valueOf(RegisteredPhone.getText());
                    final String ID2String=String.valueOf(RegisteredID.getText());

                    db=new MyDBHandler(this);



                    if(User2String.equals("")||Pass2String.equals("")|| Name2String.equals("")||Phone2String.equals("")||ID2String.equals("")){
                        Toast.makeText(RegisterActivity.this, "", Toast.LENGTH_SHORT).show();
                    }
                    else {

                        UserTable NewUser=new UserTable(User2String,Pass2String,Name2String,Phone2String,ID2String);
                        db.Add(NewUser);
                        Toast.makeText(RegisterActivity.this, "", Toast.LENGTH_SHORT).show();
                        startActivity(new Intent(RegisterActivity.this, LoginActivity.class));
                    }
                }
            });
        }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM