簡體   English   中英

Android If else 條件錯誤

[英]Android If else condition error

我不知道為什么下面的代碼總是返回錯誤,即使它是真的。 我比較的是用戶在字符串變量“classNameGlobal”中輸入文本的結果,以及來自數據庫查詢的第二個結果,該結果來自表的列中的字符串值。 每當我運行控制切換到 else 條件時不運行 if 部分-.-

請看一看。

String result[];
result = new String[cursor.getCount() - 1];
int i = 0;
while (cursor.moveToNext()) {
        result[i] = cursor.getString(cursor.getColumnIndex("name"));
        i++;
    }

 classNameGlobal = className.getText().toString().toUpperCase().trim();

注意:所有如果上面的代碼是用 onclick 方法編寫的,除了那個結果數組聲明。 此外,我對存儲在數據庫中的字符串使用相同的方法,即我將其轉換為大寫,然后修剪任何額外的空格......即使當我從查詢和用戶輸入字符串的 tat 中轉儲結果時:兩者都是相同的。 現在為什么我總是讓這個 else 部分運行而不是 if 部分 -.- 我用來比較數據庫查詢和用戶輸入字符串的結果的方法是:

 for (int b = 0; b < result.length; b++) {

                if (classNameGlobal == result[b]) {
                    Log.d(TAG, "Inside if condition now : " + result[b] + " \t" + classNameGlobal);

                    db.execSQL("drop table if exists " + classNameGlobal);

                    /* Deleting Code File */
                    this.deleteFile(classNameGlobal + ".txt");

                    Toast.makeText(
                            this,
                            classNameGlobal + " Database Dropped Successfully ",
                            Toast.LENGTH_SHORT).show();

                    break;

                } else {
                    Toast.makeText(
                            this,
                            "No Such Database Exists",
                            Toast.LENGTH_SHORT).show();

                }

            }

Java中,用equals方法比較String內容。 與 == 運算符比較只是檢查兩個引用是否指向同一個 object。

所以,改變

classNameGlobal == result[b]

classNameGlobal.equals(result[b])

使用if (classNameGlobal.equals(result[b])) {而不是==

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM