gpt4 book ai didi

java - 即使 'else' 为 true,为什么只有 'if' 部分被执行?

转载 作者:行者123 更新时间:2023-12-01 06:30:59 24 4
gpt4 key购买 nike

这是我的主要 Activity :

package com.santosh.sampleapp;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;

public class Main extends Activity
{
EditText password_field;
TextView tv_err;
Button login;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

password_field = (EditText) findViewById(R.id.password_field);
tv_err = (TextView)findViewById(R.id.tv_err);
login = (Button)findViewById(R.id.login);
final String password = password_field.getText().toString();


login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
if (password.equals("password")) {
tv_err.setText("good pass");
} else {
tv_err.setText("wrong pass");
}
} catch (Exception e) {
tv_err.setText(e.toString());
}

}
});
}
}

即使我在 TextView 中输入密码,它也会显示一条错误密码消息。

这是我的src/layout/main.xml(如果有帮助的话):

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<EditText android:id="@+id/password_field"
android:hint="@string/password_hint"
android:inputType="textPassword"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<Button android:id="@+id/login"
android:text="@string/get_message"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
/>
<TextView android:id="@+id/tw_err"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
/>
</LinearLayout>

最佳答案

因为密码没有更新。它包含原始值。像这样更新:

if (password_field.getText().toString().equals("password")) {

顺便说一句:尽可能继续使用 final 关键字!最大限度地减少应用程序中的可变状态,您将成为一个快乐的人。

关于java - 即使 'else' 为 true,为什么只有 'if' 部分被执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18436982/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com