2

谁能告诉我为什么if即使我ran在编辑文本字段中输入并按下该语句也不会执行ok?当用户进入ran并按下按钮ok时,我希望另一个按钮变得可见,这使他能够停止当前的活动。基本上我想知道为什么if跳过。

public class Reciever extends Activity{

    protected static final String TAG = null;
    private Button ok,stp;
    private TextView tv;
    private EditText ev;
private String s1,s2,s3,s4;
@Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        s1="nar";
        setContentView(R.layout.stop);
        tv=(TextView) findViewById(R.id.textView1);
        tv.setText(s1);

        ev=(EditText) findViewById(R.id.editText1);
    ok=(Button) findViewById(R.id.ok_button);
    ok.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            s2="ran";
            tv.setText(ev.getText().toString());
            s3=ev.getText().toString();
            if(s3==s2)//not going inside this loop
            {
            stp=(Button) findViewById(R.id.stopb);

            stp.setVisibility(View.VISIBLE);
            stp.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                finish();   
                }
            });

        }

    }
    });
    }
    }
4

3 回答 3

1
if(s3==s2)//no

只需将上面的行替换为下面的

 if(s3.equalsIgnoreCase(s2))//no
于 2012-05-20T12:50:45.537 回答
1

使用.equals而不是==比较两个字符串的值。

if (s2.equals(s3))

使用==测试进行引用相等。两个字符串可以包含相同的字符但具有不同的引用。

于 2012-05-20T12:50:52.120 回答
1

你不能用==比较文本,你需要使用equals。

if(s3.equals(s2))
于 2012-05-20T12:50:55.800 回答