if语句在android代码中不起作用

时间:2013-11-20 20:03:25

标签: android

ok.setOnClickListener(new View.OnClickListener(){

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            if(mode.getText().toString()=="Default"){
                Toast.makeText(getApplicationContext(), "Cannot Delete Default", Toast.LENGTH_SHORT).show();
            }


            //else{

            /*  db = openOrCreateDatabase("MY_App_Data", MODE_PRIVATE, null);

            db.execSQL(DATABASE_TABLE_CREATE);
            ContentValues cvInsert=new ContentValues();
            cvInsert.put("mode",mode.getText().toString());
            cvInsert.put("msg",msg.getText().toString());
            db.insert("SSP_Data", null, cvInsert);
            Toast.makeText(getApplicationContext(), "Mode Added", Toast.LENGTH_SHORT).show();
            list.add(mode.getText().toString());*/
            //}
        }
    });
嘿家伙在上面的代码我的if语句不起作用请帮助我那里iz没有语法错误然后为什么它的执行请说smthing它它

4 个答案:

答案 0 :(得分:2)

你无法在Java中以这种方式比较String。使用。equals()

if("Default".equals(mode.getText().toString()){

使用==检查它们是否相同Object但如果它们具有相同的值则不会。

此外,以这种方式将String放在变量前面可防止NPE。您的mode.getText().toString()可以return null,但您的文字String不会。

答案 1 :(得分:0)

使用.equals.equalsIgnoreCase来比较字符串

if(mode.getText().toString().equals("Default")){

答案 2 :(得分:0)

您必须使用equals来比较字符串,如下所示:

if(mode.getText().toString().equals("Default")){
                Toast.makeText(getApplicationContext(), "Cannot Delete Default", Toast.LENGTH_SHORT).show();
            }

答案 3 :(得分:0)

你没有说它是如何起作用的,但你几乎肯定想要这个:

if (mode.getText().toString().equals("Default"))

而不是:

if (mode.getText().toString() == "Default")

首先测试两个字符串是否具有相同的内容。第二个测试是否它们是相同的字符串。