0

これが私のifステートメントです:

for(int i=0;i<SharedPrefsData.subscribers.length; i++){//loop through subscribers array
        if(SharedPrefsData.subscribers[i] == null ){//if string at index i is null
            SharedPrefsData.subscribers[i] = "";//make it empty string instead of null
        }

    }

文字列の配列をループして、各要素がnull. 私の配列は次のとおりです。

[name_1, null, null, null, null, null, null, null, null, null, null, null, null, null, null]

それでも、ifステートメントのthen部分には決して入りません。誰かが助けることができれば、それは大歓迎です。

編集:配列を設定する私のコード:

public static String[] getPrefs(){
    String[] ToReturn;
    String tempString = settings.getString("123", "0");
    if(tempString == "0"){
        //show some type of error
        ToReturn = null;
    } else {
        ToReturn = tempString.split("@,#");
    }
    return ToReturn;


}

そして、これはメソッドを呼び出すステートメントです:

SharedPrefsData.setSubscribers(SharedPrefsData.getPrefs());

settingsタイプの同じクラスのフィールドですSharedPreferences

4

1 に答える 1

0

問題はデータのソースにある可能性があります

SharedPrefsData.subscribers 配列に、null ではなく「null」文字列が含まれる場合があります。ちょうど試して

if(SharedPrefsData.subscribers[i] == null ||  SharedPrefsData.subscribers[i].equals("null"))

繰り返しますが、問題はソースにある可能性があり、問題が上記のステートメントで解決された場合は、ソースを調べて、null オブジェクトの代わりに「null」文字列が返されていないことを確認する必要があります。

于 2013-07-10T15:26:47.653 に答える