在使用JAVA的Android中,如果仅仅因为条件检查而导致的块语句始终为false,则执行失败?

在使用JAVA的Android中,如果仅仅因为条件检查而导致的块语句始终为false,则执行失败?,java,android,if-statement,conditional-statements,Java,Android,If Statement,Conditional Statements,有人能帮助我下面写的“如果代码”有什么问题吗?这不是每次都在块中出现,即使是在IF登录控制台之前的值 if(userNameString == userInstance.getUsername() && passwordString == userInstance.getPassword()) 以下是完整的代码: if(userInstance == null) { Log.i("no record found againse User In

有人能帮助我下面写的“如果代码”有什么问题吗?这不是每次都在块中出现,即使是在IF登录控制台之前的值

 if(userNameString == userInstance.getUsername() && passwordString == userInstance.getPassword())
以下是完整的代码:

if(userInstance == null)
    {
        Log.i("no record found againse User Instance",""+userInstance); 
        Toast.makeText(getApplicationContext(),
                "User Id and Password is wrong", Toast.LENGTH_SHORT).show();
        getLoaderManager().destroyLoader(arg0.getId());
    
    }
    else
    {
        Log.i("Record found againse User Instance 1st",""+userInstance + "userName:" + userNameString +":pass:::"+passwordString);  
        if(userNameString == userInstance.getUsername() && passwordString == userInstance.getPassword())
        {
            Log.i("Record found againse User Instance 2nd",""+userInstance);    
            //Log.i("UserInstance else","" + userInstance);
            SessionManager.saveLoginCredentials(context,userInstance.getUsername().toString(),userInstance.getPassword().toString());
            Intent intent = new Intent(LoginActivityService.this,
                    ProposalListActivity.class);
            startActivity(intent);
            
            getLoaderManager().destroyLoader(arg0.getId());
        }
        
    }
这是日志:

02-04 22:36:39.150:装载机的I/on LOAD已完成(14572):名称:孔,密码:f10343d1dc8d44c8935b356aa3f8aae2,名字:孔

02-04 22:36:39.150:在用户实例1(14572)中找到I/Record:名称:kong,密码:f10343d1dc8d44c8935b356aa3f8aae2,名称:KonguserName:kong:pass::kongkong

编辑: 有一些逻辑问题,我从webservice获得的密码是编码的,而不是文本,我正在将文本与编码值进行比较,这就是为什么if语句块未执行的原因。*

在字符串中,您必须使用方法进行检查,而不是
=

使用以下代码:

if(userNameString.equals(userInstance.getUsername()) && 
      passwordString.equals(userInstance.getPassword()))

使用
equals
方法而不是
=
来比较字符串

 if(userNameString.equals(userInstance.getUsername()) && passwordString.equals(userInstance.getPassword()))

我想这是第一天我不会看到这个问题:(我错了。和往常一样。这是太多次回答,使用等于比较字符串..根据logcat输出,看起来你的密码是错误的。只需将“空空空”与“f10343d1dc8d44c8935b356aa3f8aae2”进行比较即可@RichardLeMesurier是的,当用户在文本中输入密码时,我从服务中获取密码,这就是为什么我现在会出错的原因。这是因为调试比其他人更好,他们只是说了重复的问题或用法。我使用了等号。等号,但它的逻辑问题可以吗upvote@RichardLeMesurier你能帮我怎么做吗将编码的字符串转换为实字符串/text已经使用过,但仍然没有reponse@user3233280现在您有了另一个问题。调试您的code.tnx@ᴍ阿伦ᴍ关于您的精彩编辑,请更清楚@user3233280,我们可以帮助您,告诉用户真正的问题是什么,并发布相关信息code@RichardLe mesurier调试了我的代码,这才是真正的问题