gpt4 book ai didi

java - 出于某种原因,我的 if 语句没有触发

转载 作者:太空狗 更新时间:2023-10-29 15:30:48 24 4
gpt4 key购买 nike

我创建了一个正常工作的 onSharedPreferencesChangeListener。我知道这一点,因为当我设置监听器时,我记录了监听器并且它在更改时触发。

但是,当我尝试切换键变量时出现错误(说我需要 JRE 1.7+ 才能切换字符串),所以我将其更改为 if-elseif 语句。

if-elseif 语句没有触发,所以我将前两个更改为 if 语句并在其后放置 elseif(认为 elseif 可能是问题所在)。仍然没有触发。

奇怪的是,当我记录事件触发器时,我输出“”+key+“”作为字符串,而键值正是我正在测试的字符串。

这是我的代码,有人能给我指出正确的方向吗?

    // logic for action when a shared preference is changed.
prefs.registerOnSharedPreferenceChangeListener( new SharedPreferences.OnSharedPreferenceChangeListener() {

@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
String TAG = "UltimateScoreboard";

if (key == "Main_Clock_Minutes") {
msMainClockStart = Long.valueOf( prefs.getString( "Main_Clock_Minutes", "0" ) ) * 60000;
Log.i( TAG, key + " changed: " + String.valueOf(msMainClockStart) );
}

if ( key == "Use_ShotClock" ) {
useShotClock = prefs.getBoolean( "Use_ShotClock", false );

if( useShotClock )
btnShotClock.setVisibility( View.VISIBLE );
else
btnShotClock.setVisibility( View.INVISIBLE );

Log.i( TAG, key );
}

else if ( key == "Shot_Clock_Seconds" ) {
msShotClockStart = Long.valueOf( prefs.getString( "Shot_Clock_Seconds", "0" ) ) * 1000;
Log.i( TAG, key + " changed: " + Long.valueOf(msShotClockStart) );
}

最佳答案

您必须使用 String.equals() 函数来比较字符串。 == with Strings 只比较内存位置。

例如:if (key.equals("Main_Clock_Minutes"))

关于java - 出于某种原因,我的 if 语句没有触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14189461/

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